Skip to content

Update pydantic requirement from <2.0.0,>=1.8.0 to >=1.8.0,<3.0.0 #3014

Update pydantic requirement from <2.0.0,>=1.8.0 to >=1.8.0,<3.0.0

Update pydantic requirement from <2.0.0,>=1.8.0 to >=1.8.0,<3.0.0 #3014

Workflow file for this run

name: CI
defaults:
run:
shell: bash # To override PowerShell on Windows
on:
# Trigger the workflow on push or pull request,
# but only for the master branch
push:
branches:
- master
pull_request:
# don't trigger for draft PRs
types: [ opened, synchronize, reopened, ready_for_review ]
# Trigger workflow once per week
schedule:
- cron: '0 0 * * *'
# Trigger the workflow on manual dispatch
workflow_dispatch:
inputs:
tmate_enabled:
type: boolean
description: 'Enable tmate debugging?'
required: false
default: false
jobs:
build:
if: github.event.pull_request.draft == false
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11']
include: # Run macos and windows tests on only one python version
- os: windows-latest
python-version: '3.9' # PyTorch doesn't yet have 3.10 support on Windows (https://pytorch.org/get-started/locally/#windows-python)
- os: macos-latest
python-version: '3.9' # Don't test python3.10 for macos (see https://github.com/orgs/community/discussions/38364 for details)
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade --upgrade-strategy eager -r requirements/dev.txt
python -m pip install --upgrade --upgrade-strategy eager .[prophet,tensorflow,torch]
if [ "$RUNNER_OS" == "Linux" ]; then # Currently, we only support KeOps on Linux.
python -m pip install --upgrade --upgrade-strategy eager .[prophet,tensorflow,torch,keops]
fi
python -m pip freeze
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && inputs.tmate_enabled }}
with:
limit-access-to-actor: true
- name: Test with pytest
run: |
if [ "$RUNNER_OS" == "macOS" ]; then # Avoid numba/OpenMP segfault in CVMDrift (https://github.com/SeldonIO/alibi-detect/issues/648)
export NUMBA_THREADING_LAYER="workqueue"
fi
pytest --randomly-seed=0 alibi_detect
# Note: The pytest-randomly seed is fixed at 0 for now. Once the legacy np.random.seed(0)'s
# are removed from tests, this can be removed, allowing all tests to use random seeds.
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
directory: .
env_vars: ${{matrix.os}}, ${{matrix.python-version}}
fail_ci_if_error: false
verbose: true
- name: Build Python package
run: |
make build_pypi
code-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade --upgrade-strategy eager -r requirements/dev.txt
python -m pip install --upgrade --upgrade-strategy eager .[all]
- name: Lint with flake8
run: |
flake8 alibi_detect
- name: Typecheck with mypy
run: |
mypy alibi_detect
docs:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
container:
image: readthedocs/build:ubuntu-22.04-2022.03.15
options: --user root
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements/docs.txt
python -m pip freeze
- name: Build documentation to html
run: |
make build_docs
- name: Build documentation to pdf via latex
run: |
make build_latex
licenses:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Check 3rd party licenses haven't changed
run: |
pip install "tox>=3.21.0,<4.0.0"
make licenses
make check_licenses
optional_dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Check optional dependency imports are protected
run: |
pip install "tox>=3.21.0,<4.0.0"
tox