parsm 0.8.2

Multi-format data processor that understands structured text better than sed or awk. Supports JSON, CSV, YAML, TOML, logfmt, and plain text with powerful filtering and templating.
Documentation
name: Python Integration Tests
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
jobs:
  python-integration-test:
    name: Python Integration Tests
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ['3.12']
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.python-version }}
      - name: Set up Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
      - name: Cache Rust dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-cargo-
      - name: Cache Python dependencies
        uses: actions/cache@v4
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-${{ matrix.python-version }}-
      - name: Install Python dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r bin/requirements.txt
      - name: Build Rust project (release mode for integration tests)
        run: cargo build --release
      - name: Run quick tests
        run: |
          cd ${{ github.workspace }}
          bash bin/quick_test.sh
      - name: Run Python integration tests
        run: |
          cd ${{ github.workspace }}
          python bin/integration_test.py
        env:
          RUST_LOG: error
      - name: Upload test artifacts (on failure)
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: integration-test-logs-python-${{ matrix.python-version }}
          path: |
            target/debug/
            target/release/
          retention-days: 7
  benchmark:
    name: Performance Benchmarks
    runs-on: ubuntu-latest
    if: github.event_name == 'push' && github.ref == 'refs/heads/main'
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Set up Python 3.11
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - name: Set up Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-cargo-
      - name: Install Python dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r bin/requirements.txt
      - name: Build project (release mode)
        run: cargo build --release
      - name: Run quick tests
        run: |
          cd ${{ github.workspace }}
          bash bin/quick_test.sh
      - name: Run microbenchmarks
        run: |
          cd ${{ github.workspace }}
          python bin/microbenchmark.py
        continue-on-error: true
      - name: Upload benchmark results
        uses: actions/upload-artifact@v4
        with:
          name: benchmark-results
          path: |
            *.benchmark.json
            *.benchmark.txt
          retention-days: 30