From c5ac67c6e9c845527aac65b523b7987c27484474 Mon Sep 17 00:00:00 2001 From: Thomas Mansencal Date: Wed, 20 Dec 2023 22:43:35 +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 | 88 +++++++++---------- ...nuous-integration-static-type-checking.yml | 30 +++---- .pre-commit-config.yaml | 67 ++++++++++---- .readthedocs.yaml | 4 +- CODE_OF_CONDUCT.md | 25 +++--- README.rst | 13 +-- colour_datasets/utilities/common.py | 2 +- docs/colour_datasets.loaders.rst | 2 +- docs/index.rst | 13 +-- docs/installation.rst | 2 +- docs/requirements.txt | 2 +- requirements.txt | 22 ++--- 17 files changed, 191 insertions(+), 155 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 590c9e7..f614228 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 c44900e..d2ad61b 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 0e59d75..9ab05e3 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 1f2faa8..2dd6ccd 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 832fefe..1546ef1 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_datasets" >> $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_datasets" >> $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 c54f97e..7ce1f73 100644 --- a/.github/workflows/continuous-integration-quality-unit-tests.yml +++ b/.github/workflows/continuous-integration-quality-unit-tests.yml @@ -12,47 +12,47 @@ 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_datasets" >> $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 - 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 - 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 + - name: Environment Variables + run: | + echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV + echo "CI_PACKAGE=colour_datasets" >> $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 + 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 + 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 baa3d85..31e77d7 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_datasets" >> $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_datasets" >> $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..f5e4abe 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,23 +1,56 @@ 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 + args: ["--ignore-words-list=exitance,seperately"] + exclude: "BIBLIOGRAPHY.bib|CONTRIBUTORS.rst" + - 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/README.rst b/README.rst index 30138d4..4f545c0 100644 --- a/README.rst +++ b/README.rst @@ -72,16 +72,16 @@ Most of the objects are available from the ``colour_datasets`` namespace: .. code-block:: python - >>> import colour_datasets + import colour_datasets The available datasets are listed with the ``colour_datasets.datasets()`` definition: .. code-block:: python - >>> print(colour_datasets.datasets()) + print(colour_datasets.datasets()) -:: +.. code-block:: text colour-science-datasets ======================= @@ -122,7 +122,7 @@ A dataset is loaded by using its unique number: *3245895*: .. code-block:: python - >>> print(colour_datasets.load("3245895").keys()) + print(colour_datasets.load("3245895").keys()) :: @@ -143,7 +143,10 @@ Alternatively, a dataset can be loaded by using its full title: .. code-block:: python - >>> print(colour_datasets.load("3245895").keys()) + print(colour_datasets.load("3245895").keys()) + +.. code-block:: text + odict_keys(['ColorChecker24 - After November 2014', 'ColorChecker24 - Before November 2014', 'ColorCheckerSG - After November 2014', 'ColorCheckerSG - Before November 2014']) User Guide diff --git a/colour_datasets/utilities/common.py b/colour_datasets/utilities/common.py index b724b32..81aa02c 100644 --- a/colour_datasets/utilities/common.py +++ b/colour_datasets/utilities/common.py @@ -224,7 +224,7 @@ def json_open(url: str, retries: int = 3) -> Dict: attempt = 0 while attempt != retries: try: - request = urllib.request.Request(url) + request = urllib.request.Request(url) # noqa: S310 with urllib.request.urlopen(request) as response: # noqa: S310 return json.loads(response.read()) except (urllib.error.URLError, ValueError): diff --git a/docs/colour_datasets.loaders.rst b/docs/colour_datasets.loaders.rst index 095af5a..d759f3c 100644 --- a/docs/colour_datasets.loaders.rst +++ b/docs/colour_datasets.loaders.rst @@ -357,4 +357,4 @@ Spectral Sensitivity Database - Zhao et al. (2009) .. autosummary:: :toctree: generated/ - build_Zhao2009 \ No newline at end of file + build_Zhao2009 diff --git a/docs/index.rst b/docs/index.rst index 9bad645..30ed883 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -49,16 +49,16 @@ Most of the objects are available from the ``colour_datasets`` namespace: .. code-block:: python - >>> import colour_datasets + import colour_datasets The available datasets are listed with the ``colour_datasets.datasets()`` definition: .. code-block:: python - >>> print(colour_datasets.datasets()) + print(colour_datasets.datasets()) -:: +.. code-block:: text colour-science-datasets ======================= @@ -98,7 +98,7 @@ A dataset is loaded by using its unique number: *3245895*: .. code-block:: python - >>> print(colour_datasets.load("3245895").keys()) + print(colour_datasets.load("3245895").keys()) :: @@ -119,7 +119,10 @@ Alternatively, a dataset can be loaded by using its full title: .. code-block:: python - >>> print(colour_datasets.load("3245895").keys()) + print(colour_datasets.load("3245895").keys()) + +.. code-block:: text + odict_keys(['ColorChecker24 - After November 2014', 'ColorChecker24 - Before November 2014', 'ColorCheckerSG - After November 2014', 'ColorCheckerSG - Before November 2014']) User Guide diff --git a/docs/installation.rst b/docs/installation.rst index 0365c0f..a5a76c5 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -26,4 +26,4 @@ issuing this command in a shell:: The overall development dependencies are installed as follows:: - pip install --user 'colour-datasets[development]' \ No newline at end of file + pip install --user 'colour-datasets[development]' diff --git a/docs/requirements.txt b/docs/requirements.txt index b878615..01d3e90 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -20,8 +20,8 @@ numpy==1.26.2 ; python_version >= "3.9" and python_version < "3.12" opencv-python==4.8.1.78 ; python_version >= "3.9" and python_version < "3.12" packaging==23.2 ; python_version >= "3.9" and python_version < "3.12" pillow==10.0.1 ; 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.14.3 ; python_version >= "3.9" and python_version < "3.12" pygments==2.16.1 ; python_version >= "3.9" and python_version < "3.12" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.12" diff --git a/requirements.txt b/requirements.txt index 4ff4bdd..5461211 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==4.0.0 ; 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.3.0 ; python_version >= "3.9" and python_version < "3.12" astor==0.8.1 ; python_version >= "3.9" and python_version < "3.12" asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.12" @@ -58,21 +58,21 @@ 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.2 ; 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.2 ; 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.6.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.5.0 ; python_version >= "3.9" and python_version < "3.12" jupyter-events==0.9.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.10.0 ; 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.8 ; 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.25.1 ; python_version >= "3.9" and python_version < "3.12" jupyterlab-widgets==3.0.9 ; python_version >= "3.9" and python_version < "3.12" -jupyterlab==4.0.8 ; python_version >= "3.9" and python_version < "3.12" keyring==24.3.0 ; 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" @@ -88,8 +88,8 @@ nbformat==5.9.2 ; python_version >= "3.9" and python_version < "3.12" nest-asyncio==1.5.8 ; python_version >= "3.9" and python_version < "3.12" nh3==0.2.14 ; 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.6 ; 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.26.2 ; python_version >= "3.9" and python_version < "3.12" opencv-python==4.8.1.78 ; python_version >= "3.9" and python_version < "3.12" overrides==7.4.0 ; python_version >= "3.9" and python_version < "3.12" @@ -108,19 +108,19 @@ prompt-toolkit==3.0.40 ; python_version >= "3.9" and python_version < "3.12" psutil==5.9.6 ; 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.14.3 ; python_version >= "3.9" and python_version < "3.12" pygments==2.16.1 ; python_version >= "3.9" and python_version < "3.12" pyright==1.1.335 ; python_version >= "3.9" and python_version < "3.12" +pytest==7.4.3 ; 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.4.0 ; python_version >= "3.9" and python_version < "3.12" -pytest==7.4.3 ; 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.12 ; 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" @@ -128,12 +128,12 @@ qtconsole==5.5.0 ; python_version >= "3.9" and python_version < "3.12" qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.12" readme-renderer==42.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.6.0 ; python_version >= "3.9" and python_version < "3.12" rpds-py==0.12.0 ; python_version >= "3.9" and python_version < "3.12" ruff==0.1.5 ; python_version >= "3.9" and python_version < "3.12"