From b75428484ad050485b971b0dccf0c8a386e3f400 Mon Sep 17 00:00:00 2001 From: Thomas Mansencal Date: Sun, 17 Dec 2023 09:45:41 +1300 Subject: [PATCH] Update `.pre-commit-config.yaml` file. --- .github/ISSUE_TEMPLATE/bug-report.yml | 2 +- .../documentation-improvement.yml | 2 +- .github/ISSUE_TEMPLATE/feature-request.yml | 2 +- .github/ISSUE_TEMPLATE/question.yml | 2 +- .../continuous-integration-documentation.yml | 68 ++++++------- ...tinuous-integration-quality-unit-tests.yml | 98 +++++++++---------- ...nuous-integration-static-type-checking.yml | 30 +++--- .pre-commit-config.yaml | 66 +++++++++---- .readthedocs.yaml | 4 +- CODE_OF_CONDUCT.md | 25 +++-- docs/requirements.txt | 2 +- requirements.txt | 26 ++--- 12 files changed, 178 insertions(+), 149 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index a315630..e768d8d 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,7 +1,7 @@ name: Bug Report description: Report an issue or a bug. title: "[BUG]: << Please use a comprehensive title... >>" -labels: [ Defect ] +labels: [Defect] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/documentation-improvement.yml b/.github/ISSUE_TEMPLATE/documentation-improvement.yml index 50bc0ba..aac7542 100644 --- a/.github/ISSUE_TEMPLATE/documentation-improvement.yml +++ b/.github/ISSUE_TEMPLATE/documentation-improvement.yml @@ -1,7 +1,7 @@ name: Documentation Improvement description: Report a documentation improvement. title: "[DOCUMENTATION]: << Please use a comprehensive title... >>" -labels: [ Documentation ] +labels: [Documentation] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index c86bc6d..9e243c6 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -1,7 +1,7 @@ name: Feature Request description: Suggest a new feature to implement. title: "[FEATURE]: << Please use a comprehensive title... >>" -labels: [ Feature ] +labels: [Feature] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml index 9d9c125..6ca6e80 100644 --- a/.github/ISSUE_TEMPLATE/question.yml +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -1,7 +1,7 @@ name: Question description: Ask a question. title: "[DISCUSSION]: << Please use a comprehensive title... >>" -labels: [ Discussion ] +labels: [Discussion] body: - type: markdown diff --git a/.github/workflows/continuous-integration-documentation.yml b/.github/workflows/continuous-integration-documentation.yml index f715e49..1a05ce8 100644 --- a/.github/workflows/continuous-integration-documentation.yml +++ b/.github/workflows/continuous-integration-documentation.yml @@ -12,37 +12,37 @@ jobs: fail-fast: false runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v1 - - name: Environment Variables - run: | - echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV - echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV - echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV - echo "MPLBACKEND=AGG" >> $GITHUB_ENV - echo "COLOUR_SCIENCE__DOCUMENTATION_BUILD=True" >> $GITHUB_ENV - shell: bash - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install Dependencies - run: | - sudo apt-get update - sudo apt-get --yes install latexmk texlive-full - - name: Install Poetry - env: - POETRY_VERSION: 1.4.0 - run: | - curl -sSL https://install.python-poetry.org | POETRY_HOME=$HOME/.poetry python3 - - echo "$HOME/.poetry/bin" >> $GITHUB_PATH - shell: bash - - name: Install Package Dependencies - run: | - poetry run python -m pip install --upgrade pip - poetry install - poetry run python -c "import imageio;imageio.plugins.freeimage.download()" - shell: bash - - name: Build Documentation - run: | - poetry run invoke docs - shell: bash + - uses: actions/checkout@v1 + - name: Environment Variables + run: | + echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV + echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV + echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV + echo "MPLBACKEND=AGG" >> $GITHUB_ENV + echo "COLOUR_SCIENCE__DOCUMENTATION_BUILD=True" >> $GITHUB_ENV + shell: bash + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get --yes install latexmk texlive-full + - name: Install Poetry + env: + POETRY_VERSION: 1.4.0 + run: | + curl -sSL https://install.python-poetry.org | POETRY_HOME=$HOME/.poetry python3 - + echo "$HOME/.poetry/bin" >> $GITHUB_PATH + shell: bash + - name: Install Package Dependencies + run: | + poetry run python -m pip install --upgrade pip + poetry install + poetry run python -c "import imageio;imageio.plugins.freeimage.download()" + shell: bash + - name: Build Documentation + run: | + poetry run invoke docs + shell: bash diff --git a/.github/workflows/continuous-integration-quality-unit-tests.yml b/.github/workflows/continuous-integration-quality-unit-tests.yml index 25d467a..64b60f1 100644 --- a/.github/workflows/continuous-integration-quality-unit-tests.yml +++ b/.github/workflows/continuous-integration-quality-unit-tests.yml @@ -8,55 +8,55 @@ jobs: strategy: matrix: os: [macOS-latest, ubuntu-22.04, windows-latest] - python-version: [3.9, '3.10', 3.11] + python-version: [3.9, "3.10", 3.11] fail-fast: false runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v1 - with: - submodules: true - - name: Environment Variables - run: | - echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV - echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV - echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV - echo "COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}" >> $GITHUB_ENV - shell: bash - - name: Set up Python 3.9 for Pre-Commit - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install Poetry - env: - POETRY_VERSION: 1.4.0 - run: | - curl -sSL https://install.python-poetry.org | POETRY_HOME=$HOME/.poetry python3 - - echo "$HOME/.poetry/bin" >> $GITHUB_PATH - shell: bash - - name: Install Package Dependencies - run: | - poetry run python -m pip install --upgrade pip - poetry install - poetry run python -c "import imageio;imageio.plugins.freeimage.download()" - shell: bash - - name: Pre-Commit (All Files) - run: | - poetry run pre-commit run --all-files - shell: bash - - name: Test Optimised Python Execution - run: | - poetry run python -OO -c "import $CI_PACKAGE" - shell: bash - - name: Test with Pytest - run: | - poetry run python -W ignore -m pytest --doctest-modules --ignore=$CI_PACKAGE/examples --cov=$CI_PACKAGE $CI_PACKAGE - shell: bash - - name: Upload Coverage to coveralls.io - if: matrix.os == 'macOS-latest' && matrix.python-version == '3.11' - run: | - if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else poetry run coveralls; fi - shell: bash + - uses: actions/checkout@v1 + with: + submodules: true + - name: Environment Variables + run: | + echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV + echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV + echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV + echo "COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}" >> $GITHUB_ENV + shell: bash + - name: Set up Python 3.9 for Pre-Commit + uses: actions/setup-python@v4 + with: + python-version: 3.9 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install Poetry + env: + POETRY_VERSION: 1.4.0 + run: | + curl -sSL https://install.python-poetry.org | POETRY_HOME=$HOME/.poetry python3 - + echo "$HOME/.poetry/bin" >> $GITHUB_PATH + shell: bash + - name: Install Package Dependencies + run: | + poetry run python -m pip install --upgrade pip + poetry install + poetry run python -c "import imageio;imageio.plugins.freeimage.download()" + shell: bash + - name: Pre-Commit (All Files) + run: | + poetry run pre-commit run --all-files + shell: bash + - name: Test Optimised Python Execution + run: | + poetry run python -OO -c "import $CI_PACKAGE" + shell: bash + - name: Test with Pytest + run: | + poetry run python -W ignore -m pytest --doctest-modules --ignore=$CI_PACKAGE/examples --cov=$CI_PACKAGE $CI_PACKAGE + shell: bash + - name: Upload Coverage to coveralls.io + if: matrix.os == 'macOS-latest' && matrix.python-version == '3.11' + run: | + if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else poetry run coveralls; fi + shell: bash diff --git a/.github/workflows/continuous-integration-static-type-checking.yml b/.github/workflows/continuous-integration-static-type-checking.yml index 173df0e..7c79e91 100644 --- a/.github/workflows/continuous-integration-static-type-checking.yml +++ b/.github/workflows/continuous-integration-static-type-checking.yml @@ -12,18 +12,18 @@ jobs: fail-fast: false runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v1 - - name: Environment Variables - run: | - echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV - shell: bash - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install Package Dependencies - run: | - pip install -r requirements.txt - - name: Static Type Checking - run: | - pyright --skipunannotated + - uses: actions/checkout@v1 + - name: Environment Variables + run: | + echo "CI_PACKAGE=colour_demosaicing" >> $GITHUB_ENV + shell: bash + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install Package Dependencies + run: | + pip install -r requirements.txt + - name: Static Type Checking + run: | + pyright --skipunannotated diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 570a31c..054a788 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,23 +1,55 @@ repos: -- repo: https://github.com/ikamensh/flynt/ - rev: '1.0.1' + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v4.5.0" hooks: - - id: flynt -- repo: https://github.com/PyCQA/isort - rev: '5.12.0' + - id: check-added-large-files + - id: check-case-conflict + - id: check-merge-conflict + - id: check-symlinks + - id: check-yaml + - id: debug-statements + - id: end-of-file-fixer + - id: mixed-line-ending + - id: name-tests-test + args: ["--pytest-test-first"] + - id: requirements-txt-fixer + - id: trailing-whitespace + - repo: https://github.com/codespell-project/codespell + rev: v2.2.6 hooks: - - id: isort -- repo: https://github.com/charliermarsh/ruff-pre-commit - rev: 'v0.0.285' + - id: codespell + exclude: "BIBLIOGRAPHY.bib|CONTRIBUTORS.rst|.*.ipynb" + - repo: https://github.com/ikamensh/flynt + rev: "1.0.1" hooks: - - id: ruff -- repo: https://github.com/psf/black - rev: 23.7.0 + - id: flynt + args: [--verbose] + - repo: https://github.com/PyCQA/isort + rev: "5.12.0" hooks: - - id: black - language_version: python3.9 -- repo: https://github.com/keewis/blackdoc - rev: v0.3.8 + - id: isort + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: "v0.1.6" hooks: - - id: blackdoc - language_version: python3.9 + - id: ruff + - repo: https://github.com/psf/black-pre-commit-mirror + rev: 23.11.0 + hooks: + - id: black + language_version: python3.9 + - repo: https://github.com/adamchainz/blacken-docs + rev: 1.16.0 + hooks: + - id: blacken-docs + language_version: python3.9 + - repo: https://github.com/pre-commit/mirrors-prettier + rev: "v3.1.0" + hooks: + - id: prettier + exclude: config-aces-reference.ocio.yaml + - repo: https://github.com/pre-commit/pygrep-hooks + rev: "v1.10.0" + hooks: + - id: rst-backticks + - id: rst-directive-colons + - id: rst-inline-touching-normal diff --git a/.readthedocs.yaml b/.readthedocs.yaml index c93eb8a..47935c5 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,7 +6,7 @@ build: python: "3.11" sphinx: - configuration: docs/conf.py + configuration: docs/conf.py formats: - htmlzip @@ -14,4 +14,4 @@ formats: python: install: - - requirements: docs/requirements.txt \ No newline at end of file + - requirements: docs/requirements.txt diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 67ab8e5..58ec1de 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,23 +8,22 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others’ private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others’ private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities - Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. @@ -35,7 +34,6 @@ This Code of Conduct applies within all project spaces, and it also applies when ## Enforcement - Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting Thomas Mansencal and Michael Mauderer via email at thomas@colour-science.org and michael@colour-science.org respectively. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership. @@ -46,6 +44,5 @@ This Code of Conduct is adapted from the Contributor Covenant, version 1.4, avai For answers to common questions about this code of conduct, see [https://www.contributor-covenant.org/faq][faq]. - [homepage]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html -[faq]: https://www.contributor-covenant.org/faq \ No newline at end of file +[faq]: https://www.contributor-covenant.org/faq diff --git a/docs/requirements.txt b/docs/requirements.txt index 9cde8f7..ea13317 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -24,8 +24,8 @@ matplotlib==3.7.2 ; python_version >= "3.9" and python_version < "3.12" numpy==1.25.2 ; python_version >= "3.9" and python_version < "3.12" packaging==23.1 ; python_version >= "3.9" and python_version < "3.12" pillow==10.0.0 ; python_version >= "3.9" and python_version < "3.12" -pybtex-docutils==1.0.3 ; python_version >= "3.9" and python_version < "3.12" pybtex==0.24.0 ; python_version >= "3.9" and python_version < "3.12" +pybtex-docutils==1.0.3 ; python_version >= "3.9" and python_version < "3.12" pydata-sphinx-theme==0.13.3 ; python_version >= "3.9" and python_version < "3.12" pygments==2.16.1 ; python_version >= "3.9" and python_version < "3.12" pyparsing==3.0.9 ; python_version >= "3.9" and python_version < "3.12" diff --git a/requirements.txt b/requirements.txt index edd4afd..ee88936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,8 +2,8 @@ accessible-pygments==0.0.4 ; python_version >= "3.9" and python_version < "3.12" alabaster==0.7.13 ; python_version >= "3.9" and python_version < "3.12" anyio==3.7.1 ; python_version >= "3.9" and python_version < "3.12" appnope==0.1.3 ; python_version >= "3.9" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") -argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.12" argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.12" +argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.12" arrow==1.2.3 ; python_version >= "3.9" and python_version < "3.12" astor==0.8.1 ; python_version >= "3.9" and python_version < "3.12" asttokens==2.2.1 ; python_version >= "3.9" and python_version < "3.12" @@ -53,8 +53,8 @@ importlib-resources==6.0.1 ; python_version >= "3.9" and python_version < "3.10" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.12" invoke==2.2.0 ; python_version >= "3.9" and python_version < "3.12" ipykernel==6.25.1 ; python_version >= "3.9" and python_version < "3.12" -ipython-genutils==0.2.0 ; python_version >= "3.9" and python_version < "3.12" ipython==8.14.0 ; python_version >= "3.9" and python_version < "3.12" +ipython-genutils==0.2.0 ; python_version >= "3.9" and python_version < "3.12" ipywidgets==8.1.0 ; python_version >= "3.9" and python_version < "3.12" isoduration==20.11.0 ; python_version >= "3.9" and python_version < "3.12" jaraco-classes==3.3.0 ; python_version >= "3.9" and python_version < "3.12" @@ -63,28 +63,28 @@ jeepney==0.8.0 ; python_version >= "3.9" and python_version < "3.12" and sys_pla jinja2==3.1.2 ; python_version >= "3.9" and python_version < "3.12" json5==0.9.14 ; python_version >= "3.9" and python_version < "3.12" jsonpointer==2.4 ; python_version >= "3.9" and python_version < "3.12" -jsonschema-specifications==2023.7.1 ; python_version >= "3.9" and python_version < "3.12" jsonschema==4.19.0 ; python_version >= "3.9" and python_version < "3.12" +jsonschema-specifications==2023.7.1 ; python_version >= "3.9" and python_version < "3.12" jsonschema[format-nongpl]==4.19.0 ; python_version >= "3.9" and python_version < "3.12" +jupyter==1.0.0 ; python_version >= "3.9" and python_version < "3.12" jupyter-client==8.3.0 ; python_version >= "3.9" and python_version < "3.12" jupyter-console==6.6.3 ; python_version >= "3.9" and python_version < "3.12" jupyter-core==5.3.1 ; python_version >= "3.9" and python_version < "3.12" jupyter-events==0.7.0 ; python_version >= "3.9" and python_version < "3.12" jupyter-lsp==2.2.0 ; python_version >= "3.9" and python_version < "3.12" -jupyter-server-terminals==0.4.4 ; python_version >= "3.9" and python_version < "3.12" jupyter-server==2.7.2 ; python_version >= "3.9" and python_version < "3.12" -jupyter==1.0.0 ; python_version >= "3.9" and python_version < "3.12" +jupyter-server-terminals==0.4.4 ; python_version >= "3.9" and python_version < "3.12" +jupyterlab==4.0.5 ; python_version >= "3.9" and python_version < "3.12" jupyterlab-pygments==0.2.2 ; python_version >= "3.9" and python_version < "3.12" jupyterlab-server==2.24.0 ; python_version >= "3.9" and python_version < "3.12" jupyterlab-widgets==3.0.8 ; python_version >= "3.9" and python_version < "3.12" -jupyterlab==4.0.5 ; python_version >= "3.9" and python_version < "3.12" keyring==24.2.0 ; python_version >= "3.9" and python_version < "3.12" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.12" latexcodec==2.0.1 ; python_version >= "3.9" and python_version < "3.12" markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "3.12" markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "3.12" -matplotlib-inline==0.1.6 ; python_version >= "3.9" and python_version < "3.12" matplotlib==3.7.2 ; python_version >= "3.9" and python_version < "3.12" +matplotlib-inline==0.1.6 ; python_version >= "3.9" and python_version < "3.12" mdurl==0.1.2 ; python_version >= "3.9" and python_version < "3.12" mistune==3.0.1 ; python_version >= "3.9" and python_version < "3.12" more-itertools==10.1.0 ; python_version >= "3.9" and python_version < "3.12" @@ -94,8 +94,8 @@ nbconvert==7.7.4 ; python_version >= "3.9" and python_version < "3.12" nbformat==5.9.2 ; python_version >= "3.9" and python_version < "3.12" nest-asyncio==1.5.7 ; python_version >= "3.9" and python_version < "3.12" nodeenv==1.8.0 ; python_version >= "3.9" and python_version < "3.12" -notebook-shim==0.2.3 ; python_version >= "3.9" and python_version < "3.12" notebook==7.0.2 ; python_version >= "3.9" and python_version < "3.12" +notebook-shim==0.2.3 ; python_version >= "3.9" and python_version < "3.12" numpy==1.25.2 ; python_version >= "3.9" and python_version < "3.12" overrides==7.4.0 ; python_version >= "3.9" and python_version < "3.12" packaging==23.1 ; python_version >= "3.9" and python_version < "3.12" @@ -114,20 +114,20 @@ prompt-toolkit==3.0.39 ; python_version >= "3.9" and python_version < "3.12" psutil==5.9.5 ; python_version >= "3.9" and python_version < "3.12" ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.12" and (sys_platform != "win32" or os_name != "nt") pure-eval==0.2.2 ; python_version >= "3.9" and python_version < "3.12" -pybtex-docutils==1.0.3 ; python_version >= "3.9" and python_version < "3.12" pybtex==0.24.0 ; python_version >= "3.9" and python_version < "3.12" +pybtex-docutils==1.0.3 ; python_version >= "3.9" and python_version < "3.12" pycparser==2.21 ; python_version >= "3.9" and python_version < "3.12" pydata-sphinx-theme==0.13.3 ; python_version >= "3.9" and python_version < "3.12" pygments==2.16.1 ; python_version >= "3.9" and python_version < "3.12" pyparsing==3.0.9 ; python_version >= "3.9" and python_version < "3.12" pyright==1.1.324 ; python_version >= "3.9" and python_version < "3.12" +pytest==7.4.0 ; python_version >= "3.9" and python_version < "3.12" pytest-cov==4.1.0 ; python_version >= "3.9" and python_version < "3.12" pytest-xdist==3.3.1 ; python_version >= "3.9" and python_version < "3.12" -pytest==7.4.0 ; python_version >= "3.9" and python_version < "3.12" python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "3.12" python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.12" -pywin32-ctypes==0.2.2 ; python_version >= "3.9" and python_version < "3.12" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.12" +pywin32-ctypes==0.2.2 ; python_version >= "3.9" and python_version < "3.12" and sys_platform == "win32" pywinpty==2.0.11 ; python_version >= "3.9" and python_version < "3.12" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.12" pyzmq==25.1.1 ; python_version >= "3.9" and python_version < "3.12" @@ -135,12 +135,12 @@ qtconsole==5.4.3 ; python_version >= "3.9" and python_version < "3.12" qtpy==2.3.1 ; python_version >= "3.9" and python_version < "3.12" readme-renderer==41.0 ; python_version >= "3.9" and python_version < "3.12" referencing==0.30.2 ; python_version >= "3.9" and python_version < "3.12" -requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "3.12" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.12" +requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "3.12" restructuredtext-lint==1.4.0 ; python_version >= "3.9" and python_version < "3.12" rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.12" -rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.12" rfc3986==2.0.0 ; python_version >= "3.9" and python_version < "3.12" +rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.12" rich==13.5.2 ; python_version >= "3.9" and python_version < "3.12" rpds-py==0.9.2 ; python_version >= "3.9" and python_version < "3.12" ruff==0.0.286 ; python_version >= "3.9" and python_version < "3.12"