Skip to content

Pydantic v2

Pydantic v2 #433

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Test Workflow
on:
push:
branches: [ "main", "v0.3/main" ]
pull_request:
branches: [ "main", "v0.3/main" ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
issues: write
pull-requests: write
contents: write
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python_version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
cache-dependency-path: pyproject.toml
- name: Install dependencies
# Installs pydantic v2
run: |
set -o pipefail
sudo apt install -y graphviz
pip install pip flit wheel --upgrade
flit install -s --deps develop
- name: Test documentation
run: |
pytest --codeblocks documentation
- name: Test docstrings
run: |
pytest --doctest-modules tawazi
- name: Run tests
run: |
set -o pipefail
pytest --doctest-modules tests/ tawazi | tee pytest-coverage.txt
# TODO: remove when pydantic v1 is dropped
- name: Tests with Pydantic v1
run: |
set -o pipefail
flit install -s --deps develop --extras pydantic1
pytest --doctest-modules tests/ tawazi