diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..b5d52a996 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,4 @@ +# These owners will be the default owners for everything in +# the repo. They will be requested for review when someone +# opens a pull request. +* @SkalskiP @LinasKo @onuralpszr diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6de587d18..42aa0e9c6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,13 +4,15 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "daily" + interval: "weekly" commit-message: prefix: โฌ๏ธ + target-branch: "develop" # Python - package-ecosystem: "pip" directory: "/" schedule: - interval: "daily" + interval: "weekly" commit-message: prefix: โฌ๏ธ + target-branch: "develop" diff --git a/.github/workflows/clear-cache.yml b/.github/workflows/clear-cache.yml index 5b96de427..a9cf4544f 100644 --- a/.github/workflows/clear-cache.yml +++ b/.github/workflows/clear-cache.yml @@ -1,33 +1,42 @@ - name: Clear cache on: - schedule: - - cron: '0 0 1 * *' - workflow_dispatch: + schedule: + - cron: "0 0 1 * *" # Run at midnight on the first day of every month + workflow_dispatch: +# Restrict permissions by default permissions: - actions: write + actions: write # Required for cache management jobs: clear-cache: + name: Clear cache runs-on: ubuntu-latest + timeout-minutes: 10 steps: - name: Clear cache - uses: actions/github-script@v7 + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: script: | - console.log("About to clear") + console.log("Starting cache cleanup...") const caches = await github.rest.actions.getActionsCacheList({ owner: context.repo.owner, repo: context.repo.repo, }) + + let deletedCount = 0 for (const cache of caches.data.actions_caches) { - console.log(cache) - github.rest.actions.deleteActionsCacheById({ - owner: context.repo.owner, - repo: context.repo.repo, - cache_id: cache.id, - }) + console.log(`Deleting cache: ${cache.key} (${cache.size_in_bytes} bytes)`) + try { + await github.rest.actions.deleteActionsCacheById({ + owner: context.repo.owner, + repo: context.repo.repo, + cache_id: cache.id, + }) + deletedCount++ + } catch (error) { + console.error(`Failed to delete cache ${cache.key}: ${error.message}`) + } } - console.log("Clear completed") + console.log(`Cache cleanup completed. Deleted ${deletedCount} caches.`) diff --git a/.github/workflows/combine-dependabot-prs.yml b/.github/workflows/combine-dependabot-prs.yml new file mode 100644 index 000000000..803f2e1c1 --- /dev/null +++ b/.github/workflows/combine-dependabot-prs.yml @@ -0,0 +1,22 @@ +name: Combine Dependabot PRs + +on: + schedule: + - cron: "0 1 * * 3" # Wednesday at 01:00 + workflow_dispatch: # allows you to manually trigger the workflow + +permissions: + contents: write + pull-requests: write + checks: read + +jobs: + combine-prs: + name: Combine + runs-on: ubuntu-latest + steps: + - name: combine-prs + id: combine-prs + uses: github/combine-prs@2909f404763c3177a456e052bdb7f2e85d3a7cb3 # v5.2.0 + with: + labels: combined-pr diff --git a/.github/workflows/notebook-bot.yml b/.github/workflows/notebook-bot.yml deleted file mode 100644 index 17175f3d4..000000000 --- a/.github/workflows/notebook-bot.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: Notebook Check Pull Request - -on: - pull_request_target: - types: [opened, reopened] - -permissions: - contents: read - -jobs: - comment-welcome: - permissions: - contents: read - pull-requests: write - - runs-on: ubuntu-latest - steps: - - name: Fetch pull request branch - uses: actions/checkout@v4 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.sha }} - - name: Fetch base develop branch - run: git fetch -u "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" develop:develop - - name: Create message - env: - HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} - HEAD_REF: ${{ github.event.pull_request.head.ref }} - PR_NUM: ${{ github.event.pull_request.number }} - run: | - # Preview links and tool usage only needed for notebook changes. - readarray -t changed_notebooks < <(git diff --name-only develop | grep '\.ipynb$' || true) - if [[ ${#changed_notebooks[@]} == 0 ]]; then - echo "No notebooks modified in this pull request." - else - msg="
git pull origin $HEAD_REF
\n"
- fi
- echo "MESSAGE=$msg" >> $GITHUB_ENV
- - name: Post comment
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- ISSUE_URL: ${{ github.event.pull_request.issue_url }}
- run: |
- # Env var defined in previous step. Escape string for JSON.
- body="$(echo -n -e $MESSAGE | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()))')"
- # Add comment to pull request.
- curl -X POST \
- -H "Accept: application/vnd.github.v3+json" \
- -H "Authorization: token $GITHUB_TOKEN" \
- "${ISSUE_URL}/comments" \
- --data "{\"body\": $body}"
diff --git a/.github/workflows/poetry-test.yml b/.github/workflows/poetry-test.yml
index 52f324f22..e8570d41a 100644
--- a/.github/workflows/poetry-test.yml
+++ b/.github/workflows/poetry-test.yml
@@ -2,16 +2,18 @@ name: ๐ง Poetry Check and Installation Test Workflow
on:
push:
paths:
- - 'poetry.lock'
- - 'pyproject.toml'
+ - "poetry.lock"
+ - "pyproject.toml"
pull_request:
paths:
- - 'poetry.lock'
- - 'pyproject.toml'
+ - "poetry.lock"
+ - "pyproject.toml"
workflow_dispatch:
jobs:
poetry-tests:
+ name: Poetry install and check
+ timeout-minutes: 10
strategy:
fail-fast: false
matrix:
@@ -20,15 +22,15 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: ๐ฅ Checkout the repository
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: ๐ Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: ${{ matrix.python-version }}
- - name: ๐ฆ Install the base dependencies
- run: python -m pip install --upgrade poetry
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
- name: ๐ Check the correctness of the project config
run: poetry check
@@ -38,6 +40,3 @@ jobs:
- name: ๐งช Run the Import test
run: poetry run python -c "import supervision; from supervision import assets; from supervision import metrics; print(supervision.__version__)"
-
- - name: ๐งช Run the pytests
- run: poetry run python -m pytest ./test
diff --git a/.github/workflows/publish-dev-docs.yml b/.github/workflows/publish-dev-docs.yml
deleted file mode 100644
index 0661929e3..000000000
--- a/.github/workflows/publish-dev-docs.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Docs WorkFlow - Develop Tag ๐
-
-on:
- push:
- branches:
- - develop
- workflow_dispatch:
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref}}
- cancel-in-progress: true
-
-permissions:
- contents: write
- pages: write
- pull-requests: write
-
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: ๐ Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: ๐ Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: '3.10'
- - name: ๐ฆ Install mkdocs-material
- run: pip install "mkdocs-material"
- - name: ๐ฆ Install mkdocstrings[python]
- run: pip install "mkdocstrings[python]"
- - name: ๐ฆ Install mkdocs-material[imaging]
- run: pip install "mkdocs-material[imaging]"
- - name: ๐ฆ Install mike
- run: pip install "mike"
- - name: ๐ฆ Install mkdocs-git-revision-date-localized-plugin
- run: pip install "mkdocs-git-revision-date-localized-plugin"
- - name: ๐ฆ Install JupyterLab
- run: pip install jupyterlab
- - name: ๐ฆ Install mkdocs-jupyter
- run: pip install mkdocs-jupyter
- - name: ๐ฆ Install mkdocs-git-committers-plugin-2
- run: pip install mkdocs-git-committers-plugin-2
- - name: โ๏ธ Configure git for github-actions
- run: |
- git config --global user.name "github-actions[bot]"
- git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- - name: ๐ Deploy MkDoc-Material with mike
- run: |
- MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} mike deploy --push develop
diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
new file mode 100644
index 000000000..e57063a9e
--- /dev/null
+++ b/.github/workflows/publish-docs.yml
@@ -0,0 +1,60 @@
+name: Build and Publish Docs
+
+on:
+ push:
+ branches:
+ - develop
+ workflow_dispatch:
+ release:
+ types: [published]
+
+# Ensure only one concurrent deployment
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref}}
+ cancel-in-progress: true
+
+# Restrict permissions by default
+permissions:
+ contents: write # Required for committing to gh-pages
+ pages: write # Required for deploying to Pages
+ pull-requests: write # Required for PR comments
+
+jobs:
+ deploy:
+ name: Publish Docs
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ strategy:
+ matrix:
+ python-version: ["3.10"]
+ steps:
+ - name: ๐ฅ Checkout the repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
+ - name: ๐ Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
+
+ - name: ๐ฆ Install dependencies
+ run: |
+ poetry install --with=docs
+
+ - name: โ๏ธ Configure git for github-actions
+ run: |
+ git config --global user.name "github-actions[bot]"
+ git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
+
+ - name: ๐ Deploy Development Docs
+ if: (github.event_name == 'push' && github.ref == 'refs/heads/develop') || github.event_name == 'workflow_dispatch')
+ run: |
+ MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} poetry run mike deploy --push develop
+
+ - name: ๐ Deploy Release Docs
+ if: github.event_name == 'release' && github.event.action == 'published'
+ run: |
+ latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`)
+ MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} poetry run mike deploy --push --update-aliases $latest_tag latest
diff --git a/.github/workflows/publish-release-docs.yml b/.github/workflows/publish-release-docs.yml
deleted file mode 100644
index 227100332..000000000
--- a/.github/workflows/publish-release-docs.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: Supervision Release Documentation Workflow ๐
-on:
- workflow_dispatch:
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref}}
- cancel-in-progress: true
-
-permissions:
- contents: write
- pages: write
- pull-requests: write
-
-
-jobs:
- doc-build-deploy:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: ["3.10"]
- steps:
- - name: ๐๏ธ Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- ref: ${{ github.head_ref }}
-
- - name: ๐ Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: '3.10'
- - name: ๐ฆ Install mkdocs-material
- run: pip install "mkdocs-material"
- - name: ๐ฆ Install mkdocstrings[python]
- run: pip install "mkdocstrings[python]"
- - name: ๐ฆ Install mkdocs-material[imaging]
- run: pip install "mkdocs-material[imaging]"
- - name: ๐ฆ Install mike
- run: pip install "mike"
- - name: ๐ฆ Install mkdocs-git-revision-date-localized-plugin
- run: pip install "mkdocs-git-revision-date-localized-plugin"
- - name: ๐ฆ Install JupyterLab
- run: pip install jupyterlab
- - name: ๐ฆ Install mkdocs-jupyter
- run: pip install mkdocs-jupyter
- - name: ๐ฆ Install mkdocs-git-committers-plugin-2
- run: pip install mkdocs-git-committers-plugin-2
- - name: โ๏ธ Configure git for github-actions ๐ท
- run: |
- git config --global user.name "github-actions[bot]"
- git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- - name: ๐ Deploy MkDoc-Material ๐
- run: |
- latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`)
- MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} mike deploy --push --update-aliases $latest_tag latest
diff --git a/.github/workflows/publish-test.yml b/.github/workflows/publish-test.yml
index 2cd05bf13..4b969a210 100644
--- a/.github/workflows/publish-test.yml
+++ b/.github/workflows/publish-test.yml
@@ -1,43 +1,52 @@
name: Publish Supervision Pre-Releases to PyPI and TestPyPI
+
on:
push:
tags:
- "[0-9]+.[0-9]+[0-9]+.[0-9]+a[0-9]"
- "[0-9]+.[0-9]+[0-9]+.[0-9]+b[0-9]"
- "[0-9]+.[0-9]+[0-9]+.[0-9]+rc[0-9]"
-
workflow_dispatch:
+permissions: {} # Explicitly remove all permissions by default
+
jobs:
- build-and-publish-pre-release-pypi:
- name: Build and publish to PyPI
+ build-and-publish-pre-release:
+ name: Publish Pre-releasePackage
runs-on: ubuntu-latest
- environment: test
+ environment: release
+ timeout-minutes: 10
permissions:
- id-token: write
+ id-token: write # Required for PyPI publishing
+ contents: read # Required for checkout
strategy:
matrix:
python-version: ["3.10"]
steps:
- - name: ๐๏ธ Checkout
- uses: actions/checkout@v4
- with:
- ref: ${{ github.head_ref }}
+ - name: ๐ฅ Checkout the repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
- name: ๐ Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: ${{ matrix.python-version }}
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
+
- name: ๐๏ธ Build source and wheel distributions
run: |
- python -m pip install --upgrade build twine
- python -m build
+ poetry install --with=build
+ poetry build
twine check --strict dist/*
- name: ๐ Publish to PyPi
- uses: pypa/gh-action-pypi-publish@release/v1.10
+ uses: pypa/gh-action-pypi-publish@67339c736fd9354cd4f8cb0b744f2b82a74b5c70 # v1.12.3
+ with:
+ attestations: true
- name: ๐ Publish to Test-PyPi
- uses: pypa/gh-action-pypi-publish@release/v1.10
+ uses: pypa/gh-action-pypi-publish@67339c736fd9354cd4f8cb0b744f2b82a74b5c70 # v1.12.3
with:
repository-url: https://test.pypi.org/legacy/
+ attestations: true
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 17c2629a8..ebc2ff228 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -1,40 +1,50 @@
name: Publish Supervision Releases to PyPI and TestPyPI
+
on:
push:
tags:
- "[0-9]+.[0-9]+[0-9]+.[0-9]"
-
workflow_dispatch:
+permissions: {} # Explicitly remove all permissions by default
+
jobs:
build-and-publish-pre-release:
+ name: Publish Release Package
runs-on: ubuntu-latest
environment: release
+ timeout-minutes: 10
permissions:
- id-token: write
+ id-token: write # Required for PyPI publishing
+ contents: read # Required for checkout
strategy:
matrix:
python-version: ["3.10"]
steps:
- - name: ๐๏ธ Checkout
- uses: actions/checkout@v4
- with:
- ref: ${{ github.head_ref }}
+ - name: ๐ฅ Checkout the repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
- name: ๐ Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: ${{ matrix.python-version }}
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
+
- name: ๐๏ธ Build source and wheel distributions
run: |
- python -m pip install --upgrade build twine
- python -m build
+ poetry install --with=build
+ poetry build
twine check --strict dist/*
- name: ๐ Publish to PyPi
- uses: pypa/gh-action-pypi-publish@release/v1.10
+ uses: pypa/gh-action-pypi-publish@67339c736fd9354cd4f8cb0b744f2b82a74b5c70 # v1.12.3
+ with:
+ attestations: true
- name: ๐ Publish to Test-PyPi
- uses: pypa/gh-action-pypi-publish@release/v1.10
+ uses: pypa/gh-action-pypi-publish@67339c736fd9354cd4f8cb0b744f2b82a74b5c70 # v1.12.3
with:
repository-url: https://test.pypi.org/legacy/
+ attestations: true
diff --git a/.github/workflows/test-doc.yml b/.github/workflows/test-doc.yml
index b15072902..6d12dd9f4 100644
--- a/.github/workflows/test-doc.yml
+++ b/.github/workflows/test-doc.yml
@@ -4,18 +4,35 @@ on:
pull_request:
branches: [main, develop]
+# Restrict permissions by default
+permissions:
+ contents: read # Required for checkout
+ checks: write # Required for test reporting
+
jobs:
docs-build-test:
+ name: Test docs build
runs-on: ubuntu-latest
+ timeout-minutes: 10
+ strategy:
+ matrix:
+ python-version: ["3.10"]
steps:
- - name: ๐ Checkout code
- uses: actions/checkout@v4
- - name: ๐ Set up Python
- uses: actions/setup-python@v5
+ - name: ๐ฅ Checkout the repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
+ - name: ๐ Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
- python-version: '3.10'
- - name: ๐๏ธ Install dependencies and Test Docs Build
+ python-version: ${{ matrix.python-version }}
+
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
+
+ - name: ๐๏ธ Install dependencies
+ run: |
+ poetry install --with=docs
+
+ - name: ๐งช Test Docs Build
run: |
- python -m pip install --upgrade pip
- pip install "mkdocs-material" "mkdocstrings[python]" "mkdocs-material[imaging]" mike "mkdocs-git-revision-date-localized-plugin" jupyterlab mkdocs-jupyter mkdocs-git-committers-plugin-2
- mkdocs build --verbose
+ poetry run mkdocs build --verbose
diff --git a/.github/workflows/test-min.yml b/.github/workflows/test-min.yml
deleted file mode 100644
index 7a61282c0..000000000
--- a/.github/workflows/test-min.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: Python 3.8 - Min Dep Test WorkFlow
-
-on:
- pull_request:
- branches: [main, develop]
-
-jobs:
- build-min-dep-test:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: ["3.8"]
- steps:
- - name: ๐๏ธ Checkout
- uses: actions/checkout@v4
- - name: ๐ Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- check-latest: true
-
- - name: ๐ฆ Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install \
- attrs==23.1.0 \
- certifi==2023.7.22 \
- charset-normalizer==2.0.12 \
- cycler==0.12.1 \
- exceptiongroup==1.1.3 \
- fonttools==4.43.1 \
- idna==3.4 \
- iniconfig==2.0.0 \
- kiwisolver==1.4.5 \
- matplotlib==3.5.0 \
- numpy==1.21.2 \
- opencv-python==4.5.5.64 \
- Pillow==10.1.0 \
- packaging==23.2 \
- pluggy==1.3.0 \
- pyparsing==3.1.1 \
- pytest==7.2.0 \
- python-dateutil==2.8.2 \
- PyYAML==5.3 \
- requests==2.26.0 \
- scipy==1.10.0 \
- setuptools-scm==8.0.4 \
- six==1.16.0 \
- tomli==2.0.1 \
- tqdm==4.62.3 \
- typing_extensions==4.8.0 \
- urllib3==1.26.18 \
- defusedxml==0.7.1
-
- - name: ๐งช Test
- run: "python -m pytest ./test"
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 2f814c2ce..a5167958c 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -4,26 +4,44 @@ on:
pull_request:
branches: [main, develop]
+permissions:
+ contents: read
+ checks: write # Required for test reporting
+ pull-requests: write # Required for PR comments
+
jobs:
- build-dev-test:
- runs-on: ubuntu-latest
+ pytest:
+ name: PyTest
+ timeout-minutes: 10
strategy:
matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
+ fail-fast: false # Continue with other versions if one fails
+ runs-on: ${{ matrix.os }}
steps:
- - name: ๐๏ธ Checkout
- uses: actions/checkout@v4
+ - name: ๐ฅ Checkout the repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
- name: ๐ Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
+ uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: ${{ matrix.python-version }}
- check-latest: true
+
+ - name: ๐ Setup Poetry
+ uses: abatilo/actions-poetry@e78f54a89cb052fff327414dd9ff010b5d2b4dbd # v3.0.1
- name: ๐ฆ Install dependencies
run: |
- python -m pip install --upgrade pip
- pip install .
- pip install pytest
+ poetry install --with=test
- - name: ๐งช PyTest
- run: "python -m pytest ./test"
+ - name: Run pytest
+ uses: pavelzw/pytest-action@510c5e90c360a185039bea56ce8b3e7e51a16507 # v2.2.0
+ with:
+ verbose: true
+ emoji: true
+ job-summary: true
+ custom-arguments: "-q"
+ click-to-expand: true
+ report-title: "Test Report"
+ custom-pytest: "poetry run pytest"
diff --git a/poetry.lock b/poetry.lock
index 16eb09174..ac6f913e1 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
[[package]]
name = "anyio"
@@ -1038,61 +1038,61 @@ typing = ["typing-extensions (>=4.12.2)"]
[[package]]
name = "fonttools"
-version = "4.55.2"
+version = "4.55.3"
description = "Tools to manipulate font files"
optional = false
python-versions = ">=3.8"
files = [
- {file = "fonttools-4.55.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bef0f8603834643b1a6419d57902f18e7d950ec1a998fb70410635c598dc1a1e"},
- {file = "fonttools-4.55.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:944228b86d472612d3b48bcc83b31c25c2271e63fdc74539adfcfa7a96d487fb"},
- {file = "fonttools-4.55.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f0e55f5da594b85f269cfbecd2f6bd3e07d0abba68870bc3f34854de4fa4678"},
- {file = "fonttools-4.55.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b1a6e576db0c83c1b91925bf1363478c4bb968dbe8433147332fb5782ce6190"},
- {file = "fonttools-4.55.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:616368b15716781bc84df5c2191dc0540137aaef56c2771eb4b89b90933f347a"},
- {file = "fonttools-4.55.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7bbae4f3915225c2c37670da68e2bf18a21206060ad31dfb95fec91ef641caa7"},
- {file = "fonttools-4.55.2-cp310-cp310-win32.whl", hash = "sha256:8b02b10648d69d67a7eb055f4d3eedf4a85deb22fb7a19fbd9acbae7c7538199"},
- {file = "fonttools-4.55.2-cp310-cp310-win_amd64.whl", hash = "sha256:bbea0ab841113ac8e8edde067e099b7288ffc6ac2dded538b131c2c0595d5f77"},
- {file = "fonttools-4.55.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d34525e8141286fa976e14806639d32294bfb38d28bbdb5f6be9f46a1cd695a6"},
- {file = "fonttools-4.55.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ecd1c2b1c2ec46bb73685bc5473c72e16ed0930ef79bc2919ccadc43a99fb16"},
- {file = "fonttools-4.55.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9008438ad59e5a8e403a62fbefef2b2ff377eb3857d90a3f2a5f4d674ff441b2"},
- {file = "fonttools-4.55.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:131591ac8d7a47043aaf29581aba755ae151d46e49d2bf49608601efd71e8b4d"},
- {file = "fonttools-4.55.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4c83381c3e3e3d9caa25527c4300543578341f21aae89e4fbbb4debdda8d82a2"},
- {file = "fonttools-4.55.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42aca564b575252fd9954ed0d91d97a24de24289a16ce8ff74ed0bdf5ecebf11"},
- {file = "fonttools-4.55.2-cp311-cp311-win32.whl", hash = "sha256:c6457f650ebe15baa17fc06e256227f0a47f46f80f27ec5a0b00160de8dc2c13"},
- {file = "fonttools-4.55.2-cp311-cp311-win_amd64.whl", hash = "sha256:5cfa67414d7414442a5635ff634384101c54f53bb7b0e04aa6a61b013fcce194"},
- {file = "fonttools-4.55.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:18f082445b8fe5e91c53e6184f4c1c73f3f965c8bcc614c6cd6effd573ce6c1a"},
- {file = "fonttools-4.55.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c0f91adbbd706e8acd1db73e3e510118e62d0ffb651864567dccc5b2339f90"},
- {file = "fonttools-4.55.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d8ccce035320d63dba0c35f52499322f5531dbe85bba1514c7cea26297e4c54"},
- {file = "fonttools-4.55.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e126df9615df214ec7f04bebcf60076297fbc10b75c777ce58b702d7708ffb"},
- {file = "fonttools-4.55.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:508ebb42956a7a931c4092dfa2d9b4ffd4f94cea09b8211199090d2bd082506b"},
- {file = "fonttools-4.55.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1b9de46ef7b683d50400abf9f1578eaceee271ff51c36bf4b7366f2be29f498"},
- {file = "fonttools-4.55.2-cp312-cp312-win32.whl", hash = "sha256:2df61d9fc15199cc86dad29f64dd686874a3a52dda0c2d8597d21f509f95c332"},
- {file = "fonttools-4.55.2-cp312-cp312-win_amd64.whl", hash = "sha256:d337ec087da8216a828574aa0525d869df0a2ac217a2efc1890974ddd1fbc5b9"},
- {file = "fonttools-4.55.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:10aff204e2edee1d312fa595c06f201adf8d528a3b659cfb34cd47eceaaa6a26"},
- {file = "fonttools-4.55.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09fe922a3eff181fd07dd724cdb441fb6b9fc355fd1c0f1aa79aca60faf1fbdd"},
- {file = "fonttools-4.55.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:487e1e8b524143a799bda0169c48b44a23a6027c1bb1957d5a172a7d3a1dd704"},
- {file = "fonttools-4.55.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b1726872e09268bbedb14dc02e58b7ea31ecdd1204c6073eda4911746b44797"},
- {file = "fonttools-4.55.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6fc88cfb58b0cd7b48718c3e61dd0d0a3ee8e2c86b973342967ce09fbf1db6d4"},
- {file = "fonttools-4.55.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e857fe1859901ad8c5cab32e0eebc920adb09f413d2d73b74b677cf47b28590c"},
- {file = "fonttools-4.55.2-cp313-cp313-win32.whl", hash = "sha256:81ccd2b3a420b8050c7d9db3be0555d71662973b3ef2a1d921a2880b58957db8"},
- {file = "fonttools-4.55.2-cp313-cp313-win_amd64.whl", hash = "sha256:d559eb1744c7dcfa90ae60cb1a4b3595e898e48f4198738c321468c01180cd83"},
- {file = "fonttools-4.55.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6b5917ef79cac8300b88fd6113003fd01bbbbea2ea060a27b95d8f77cb4c65c2"},
- {file = "fonttools-4.55.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:663eba5615d6abaaf616432354eb7ce951d518e43404371bcc2b0694ef21e8d6"},
- {file = "fonttools-4.55.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:803d5cef5fc47f44f5084d154aa3d6f069bb1b60e32390c225f897fa19b0f939"},
- {file = "fonttools-4.55.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bc5f100de0173cc39102c0399bd6c3bd544bbdf224957933f10ee442d43cddd"},
- {file = "fonttools-4.55.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3d9bbc1e380fdaf04ad9eabd8e3e6a4301eaf3487940893e9fd98537ea2e283b"},
- {file = "fonttools-4.55.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:42a9afedff07b6f75aa0f39b5e49922ac764580ef3efce035ca30284b2ee65c8"},
- {file = "fonttools-4.55.2-cp38-cp38-win32.whl", hash = "sha256:f1c76f423f1a241df08f87614364dff6e0b7ce23c962c1b74bd995ec7c0dad13"},
- {file = "fonttools-4.55.2-cp38-cp38-win_amd64.whl", hash = "sha256:25062b6ca03464dd5179fc2040fb19e03391b7cc49b9cc4f879312e638605c5c"},
- {file = "fonttools-4.55.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d1100d8e665fe386a79cab59446992de881ea74d0d6c191bb988642692aa2421"},
- {file = "fonttools-4.55.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dbdc251c5e472e5ae6bc816f9b82718b8e93ff7992e7331d6cf3562b96aa268e"},
- {file = "fonttools-4.55.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0bf24d2b02dbc9376d795a63062632ff73e3e9e60c0229373f500aed7e86dd7"},
- {file = "fonttools-4.55.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4ff250ed4ff05015dfd9cf2adf7570c7a383ca80f4d9732ac484a5ed0d8453c"},
- {file = "fonttools-4.55.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44cf2a98aa661dbdeb8c03f5e405b074e2935196780bb729888639f5276067d9"},
- {file = "fonttools-4.55.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22ef222740eb89d189bf0612eb98fbae592c61d7efeac51bfbc2a1592d469557"},
- {file = "fonttools-4.55.2-cp39-cp39-win32.whl", hash = "sha256:93f439ca27e55f585e7aaa04a74990acd983b5f2245e41d6b79f0a8b44e684d8"},
- {file = "fonttools-4.55.2-cp39-cp39-win_amd64.whl", hash = "sha256:627cf10d6f5af5bec6324c18a2670f134c29e1b7dce3fb62e8ef88baa6cba7a9"},
- {file = "fonttools-4.55.2-py3-none-any.whl", hash = "sha256:8e2d89fbe9b08d96e22c7a81ec04a4e8d8439c31223e2dc6f2f9fc8ff14bdf9f"},
- {file = "fonttools-4.55.2.tar.gz", hash = "sha256:45947e7b3f9673f91df125d375eb57b9a23f2a603f438a1aebf3171bffa7a205"},
+ {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"},
+ {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"},
+ {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"},
+ {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"},
+ {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"},
+ {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"},
+ {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"},
+ {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"},
+ {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"},
+ {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"},
+ {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"},
+ {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"},
+ {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"},
+ {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"},
+ {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"},
+ {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"},
+ {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"},
+ {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"},
+ {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"},
+ {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"},
+ {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"},
+ {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"},
+ {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"},
+ {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"},
+ {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"},
+ {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"},
+ {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"},
+ {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"},
+ {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"},
+ {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"},
+ {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"},
+ {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"},
+ {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"},
+ {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"},
+ {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"},
+ {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"},
+ {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"},
+ {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"},
+ {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"},
+ {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"},
+ {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"},
+ {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"},
+ {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"},
+ {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"},
+ {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"},
+ {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"},
+ {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"},
+ {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"},
+ {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"},
+ {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"},
]
[package.extras]
@@ -1751,18 +1751,18 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>
[[package]]
name = "jupyterlab"
-version = "4.3.2"
+version = "4.3.3"
description = "JupyterLab computational environment"
optional = false
python-versions = ">=3.8"
files = [
- {file = "jupyterlab-4.3.2-py3-none-any.whl", hash = "sha256:e87100cbab8b886ff7a4f325c856100ba6fdfe916162a85409daf0e707e19d1d"},
- {file = "jupyterlab-4.3.2.tar.gz", hash = "sha256:3c0a6882dbddcc0a7bfdd5e2236f351b2b263e48780236e6996c2aca13ac5b22"},
+ {file = "jupyterlab-4.3.3-py3-none-any.whl", hash = "sha256:32a8fd30677e734ffcc3916a4758b9dab21b02015b668c60eb36f84357b7d4b1"},
+ {file = "jupyterlab-4.3.3.tar.gz", hash = "sha256:76fa39e548fdac94dc1204af5956c556f54c785f70ee26aa47ea08eda4d5bbcd"},
]
[package.dependencies]
async-lru = ">=1.0.0"
-httpx = ">=0.28.0,<0.29.0"
+httpx = ">=0.25.0"
importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""}
importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""}
ipykernel = ">=6.5.0"
@@ -3636,6 +3636,34 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+[[package]]
+name = "pytest-emoji"
+version = "0.2.0"
+description = "A pytest plugin that adds emojis to your test result report"
+optional = false
+python-versions = ">=3.4"
+files = [
+ {file = "pytest-emoji-0.2.0.tar.gz", hash = "sha256:e1bd4790d87649c2d09c272c88bdfc4d37c1cc7c7a46583087d7c510944571e8"},
+ {file = "pytest_emoji-0.2.0-py3-none-any.whl", hash = "sha256:6e34ed21970fa4b80a56ad11417456bd873eb066c02315fe9df0fafe6d4d4436"},
+]
+
+[package.dependencies]
+pytest = ">=4.2.1"
+
+[[package]]
+name = "pytest-md"
+version = "0.2.0"
+description = "Plugin for generating Markdown reports for pytest results"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "pytest-md-0.2.0.tar.gz", hash = "sha256:3b248d5b360ea5198e05b4f49c7442234812809a63137ec6cdd3643a40cf0112"},
+ {file = "pytest_md-0.2.0-py3-none-any.whl", hash = "sha256:4c4cd16fea6d1485e87ee254558712c804a96d2aa9674b780e7eb8fb6526e1d1"},
+]
+
+[package.dependencies]
+pytest = ">=4.2.1"
+
[[package]]
name = "python-dateutil"
version = "2.9.0.post0"
@@ -5047,4 +5075,4 @@ metrics = ["pandas", "pandas"]
[metadata]
lock-version = "2.0"
python-versions = "^3.8"
-content-hash = "6d745f512b187236f021aa37a9350d8d330baf2eeddf905ed3116ed7e5b67811"
+content-hash = "621eea8ec013d7be2bb4b7d7093f81e57b74b6e668379de34488e34bcd88ab87"
diff --git a/pyproject.toml b/pyproject.toml
index 24fe30629..f5106d33c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -85,8 +85,8 @@ tqdm = ">=4.62.3"
# pandas: picked lowest major version that supports Python 3.8
# pandas 2.2.3 has been released with support for Python 3.13
pandas = [
- { version = ">=2.0.0", python = "<3.13",optional = true },
- { version = ">=2.2.3", python = ">=3.13",optional = true },
+ { version = ">=2.0.0", python = "<3.13", optional = true },
+ { version = ">=2.2.3", python = ">=3.13", optional = true },
]
opencv-python = ">=4.5.5.64"
@@ -94,6 +94,11 @@ opencv-python = ">=4.5.5.64"
[tool.poetry.extras]
metrics = ["pandas"]
+[tool.poetry.group.test.dependencies]
+pytest = ">=7.2.2,<9.0.0"
+pytest-md = "^0.2.0"
+pytest-emoji = "^0.2.0"
+
[tool.poetry.group.dev.dependencies]
twine = ">=5.1.1,<7.0.0"
pytest = ">=7.2.2,<9.0.0"
@@ -118,7 +123,7 @@ mkdocstrings = ">=0.25.2,<0.27.0"
mkdocstrings-python = "^1.10.9"
mike = "^2.0.0"
# For Documentation Development use Python 3.10 or above
-#ย Use Latest mkdocs-jupyter min 0.24.6 for Jupyter Notebook Theme support
+# Use Latest mkdocs-jupyter min 0.24.6 for Jupyter Notebook Theme support
mkdocs-jupyter = "^0.24.3"
mkdocs-git-committers-plugin-2 = "^2.4.1"
mkdocs-git-revision-date-localized-plugin = "^1.2.4"
@@ -133,6 +138,8 @@ types-requests = "^2.32.0.20240712"
types-tqdm = "^4.66.0.20240417"
pandas-stubs = ">=2.0.0.230412"
+[tool.poetry.group.build.dependencies]
+twine = ">=5.1.1,<7.0.0"
[tool.bandit]
target = ["test", "supervision"]