feat(realtime): add unified set() method for prompt + image #111
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| lint: | |
| name: Lint & Format Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install UV | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add UV to PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set up Python 3.12 | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Check formatting with Black | |
| run: uv run black --check decart/ tests/ examples/ | |
| - name: Lint with Ruff | |
| run: uv run ruff check decart/ tests/ examples/ | |
| - name: Type check with MyPy | |
| run: uv run mypy decart/ | |
| continue-on-error: true # Don't fail on type errors yet | |
| test: | |
| name: Test Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install UV | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add UV to PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Run tests | |
| run: uv run pytest tests/ -v --cov=decart --cov-report=xml --cov-report=term | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| if: matrix.python-version == '3.12' | |
| with: | |
| file: ./coverage.xml | |
| flags: unittests | |
| name: codecov-umbrella | |
| fail_ci_if_error: false | |
| test-examples: | |
| name: Test Examples (Syntax Check) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install UV | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add UV to PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set up Python 3.12 | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Check examples for syntax errors | |
| run: | | |
| echo "Checking examples compile without syntax errors..." | |
| uv run python -m py_compile examples/process_video.py | |
| uv run python -m py_compile examples/process_image.py | |
| uv run python -m py_compile examples/realtime_synthetic.py | |
| uv run python -m py_compile examples/realtime_file.py | |
| echo "✅ All examples have valid syntax" | |
| # Note: Examples require DECART_API_KEY to actually run | |
| # They are only syntax-checked in CI | |
| build: | |
| name: Build Package | |
| runs-on: ubuntu-latest | |
| needs: [lint, test] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install UV | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add UV to PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set up Python 3.12 | |
| run: uv python install 3.12 | |
| - name: Build package | |
| run: uv build | |
| - name: Check package | |
| run: | | |
| uv run pip install twine | |
| uv run twine check dist/* | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ |