Compare commits
1 Commits
v1.8.1
...
b326bb2fa4
Author | SHA1 | Date | |
---|---|---|---|
b326bb2fa4 |
@ -9,62 +9,53 @@ jobs:
|
|||||||
# name: Test
|
# name: Test
|
||||||
# uses: https://git.tainton.uk/repos/pypilot/.gitea/workflows/ci.yml@main
|
# uses: https://git.tainton.uk/repos/pypilot/.gitea/workflows/ci.yml@main
|
||||||
|
|
||||||
tag:
|
|
||||||
name: Tag release
|
|
||||||
uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main
|
|
||||||
|
|
||||||
create_release:
|
create_release:
|
||||||
name: Create Release
|
name: Create Release
|
||||||
needs: tag
|
# needs: test
|
||||||
uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main
|
uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release.yml@main
|
||||||
with:
|
|
||||||
tag: ${{ needs.tag.outputs.tag_name }}
|
|
||||||
body: ${{ needs.tag.outputs.changelog }}
|
|
||||||
secrets:
|
secrets:
|
||||||
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
|
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
|
||||||
|
|
||||||
get_release_id:
|
print_release:
|
||||||
name: Get Release ID
|
name: Print Release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [tag, create_release]
|
needs: create_release
|
||||||
outputs:
|
outputs:
|
||||||
releaseid: ${{ steps.getid.outputs.releaseid }}
|
releaseid: ${{ steps.getid.outputs.releaseid }}
|
||||||
steps:
|
steps:
|
||||||
|
- run: echo "Created release ${{ needs.create_release.outputs.release_name }}."
|
||||||
- name: Get Release ID
|
- name: Get Release ID
|
||||||
id: getid
|
id: getid
|
||||||
run: |
|
run: |
|
||||||
rid=$(curl -s -X 'GET' \
|
rid=$(curl -s -X 'GET' \
|
||||||
-H 'accept: application/json' \
|
-H 'accept: application/json'
|
||||||
'${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')
|
'${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.[].id')
|
||||||
echo "releaseid=$rid" >> "$GITEA_OUTPUT"
|
echo "releaseid=$rid" >> "$GITEA_OUTPUT"
|
||||||
echo "$rid"
|
|
||||||
|
|
||||||
build_whl:
|
build_whl:
|
||||||
name: Build Wheel File
|
name: Build Wheel File
|
||||||
needs: [tag, get_release_id]
|
needs: [create_release, print_release]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v4.2.2
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.tag.outputs.tag_name }}
|
python-version: "3.13"
|
||||||
# - name: Setup Python
|
- name: Setup Poetry
|
||||||
# uses: actions/setup-python@v5
|
uses: abatilo/actions-poetry@v4
|
||||||
# with:
|
|
||||||
# python-version: "3.13"
|
|
||||||
- name: Install uv
|
|
||||||
uses: astral-sh/setup-uv@v6
|
|
||||||
with:
|
|
||||||
enable-cache: true
|
|
||||||
cache-dependency-glob: "uv.lock"
|
|
||||||
- name: Set up Python
|
|
||||||
run: uv python install
|
|
||||||
- name: Update pyproject.toml
|
- name: Update pyproject.toml
|
||||||
run: ./tools/update_pyproject.sh ${{ needs.tag.outputs.tag_name }}
|
run: ./tools/update_pyproject.sh ${{ needs.create_release.outputs.release_name }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: uv sync
|
run: poetry install
|
||||||
- name: Build wheel file
|
- name: Build wheel file
|
||||||
run: uv build
|
run: poetry build
|
||||||
|
- name: Upload Artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: whl
|
||||||
|
path: dist/
|
||||||
- name: Upload Release Asset
|
- name: Upload Release Asset
|
||||||
run: |
|
run: |
|
||||||
for file in dist/*.whl; do
|
for file in dist/*.whl; do
|
||||||
@ -72,41 +63,31 @@ jobs:
|
|||||||
-H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" \
|
-H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" \
|
||||||
-H "Content-Type: multipart/form-data" \
|
-H "Content-Type: multipart/form-data" \
|
||||||
-F "attachment=@${{ gitea.workspace }}/$file" \
|
-F "attachment=@${{ gitea.workspace }}/$file" \
|
||||||
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ needs.get_release_id.outputs.releaseid }}/assets"
|
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ needs.print_release.outputs.releaseid }}"
|
||||||
done
|
done
|
||||||
- name: Publish to PyPI
|
|
||||||
run: uv publish
|
|
||||||
env:
|
|
||||||
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
||||||
# - name: Publish to PyPI
|
|
||||||
# uses: pypa/gh-action-pypi-publish@release/v1
|
|
||||||
# with:
|
|
||||||
# # user: ${{ vars.PYPI_USERNAME }}
|
|
||||||
# user: __token__
|
|
||||||
# password: ${{ secrets.PYPI_API_TOKEN }}
|
|
||||||
|
|
||||||
# publish_pypi:
|
publish_pypi:
|
||||||
# name: Publish to PyPI
|
name: Publish to PyPI
|
||||||
# needs: build_whl
|
needs: build_whl
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# steps:
|
steps:
|
||||||
# - name: Create dist folder
|
- name: Create dist folder
|
||||||
# run: mkdir -p dist
|
run: mkdir -p dist
|
||||||
# - uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
# with:
|
with:
|
||||||
# name: whl
|
name: whl
|
||||||
# path: dist
|
path: dist
|
||||||
# - name: Publish to PyPI
|
- name: Publish to PyPI
|
||||||
# uses: pypa/gh-action-pypi-publish@release/v1
|
uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
# with:
|
with:
|
||||||
# # user: ${{ vars.PYPI_USERNAME }}
|
# user: ${{ vars.PYPI_USERNAME }}
|
||||||
# user: __token__
|
user: __token__
|
||||||
# password: ${{ secrets.PYPI_API_TOKEN }}
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
||||||
|
|
||||||
create_docker:
|
create_docker:
|
||||||
name: Publish Docker Images
|
name: Publish Docker Images
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: tag
|
needs: create_release
|
||||||
steps:
|
steps:
|
||||||
- name: Update Docker configuration
|
- name: Update Docker configuration
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
@ -128,7 +109,7 @@ jobs:
|
|||||||
uses: actions/checkout@v4.2.2
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: ${{ needs.tag.outputs.tag_name }}
|
ref: ${{ needs.create_release.outputs.release_name }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
@ -151,7 +132,7 @@ jobs:
|
|||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}
|
tags: type=semver,pattern=v{{version}},value=${{ needs.create_release.outputs.release_name }}
|
||||||
images: |
|
images: |
|
||||||
ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}
|
ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}
|
||||||
${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}
|
${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}
|
||||||
|
@ -8,13 +8,13 @@ authors = [
|
|||||||
]
|
]
|
||||||
requires-python = "<4.0,>=3.11"
|
requires-python = "<4.0,>=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"astroid==3.3.10",
|
"astroid==3.3.9",
|
||||||
"attrs==25.3.0",
|
"attrs==25.3.0",
|
||||||
"certifi==2025.4.26",
|
"certifi==2025.4.26",
|
||||||
"charset-normalizer==3.4.2",
|
"charset-normalizer==3.4.2",
|
||||||
"click==8.2.0",
|
"click==8.1.8",
|
||||||
"dill==0.4.0",
|
"dill==0.4.0",
|
||||||
"exceptiongroup==1.3.0",
|
"exceptiongroup==1.2.2",
|
||||||
"idna==3.10",
|
"idna==3.10",
|
||||||
"iniconfig==2.1.0",
|
"iniconfig==2.1.0",
|
||||||
"lazy-object-proxy==1.11.0",
|
"lazy-object-proxy==1.11.0",
|
||||||
@ -22,7 +22,7 @@ dependencies = [
|
|||||||
"mypy-extensions==1.1.0",
|
"mypy-extensions==1.1.0",
|
||||||
"packaging==25.0",
|
"packaging==25.0",
|
||||||
"pathspec==0.12.1",
|
"pathspec==0.12.1",
|
||||||
"platformdirs==4.3.8",
|
"platformdirs==4.3.7",
|
||||||
"pluggy==1.5.0",
|
"pluggy==1.5.0",
|
||||||
"py==1.11.0",
|
"py==1.11.0",
|
||||||
"pyparsing==3.2.3",
|
"pyparsing==3.2.3",
|
||||||
|
44
uv.lock
generated
44
uv.lock
generated
@ -8,11 +8,11 @@ resolution-markers = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "astroid"
|
name = "astroid"
|
||||||
version = "3.3.10"
|
version = "3.3.9"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/00/c2/9b2de9ed027f9fe5734a6c0c0a601289d796b3caaf1e372e23fa88a73047/astroid-3.3.10.tar.gz", hash = "sha256:c332157953060c6deb9caa57303ae0d20b0fbdb2e59b4a4f2a6ba49d0a7961ce", size = 398941, upload-time = "2025-05-10T13:33:10.405Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea/astroid-3.3.9.tar.gz", hash = "sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550", size = 398731, upload-time = "2025-03-09T11:54:36.388Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/15/58/5260205b9968c20b6457ed82f48f9e3d6edf2f1f95103161798b73aeccf0/astroid-3.3.10-py3-none-any.whl", hash = "sha256:104fb9cb9b27ea95e847a94c003be03a9e039334a8ebca5ee27dafaf5c5711eb", size = 275388, upload-time = "2025-05-10T13:33:08.391Z" },
|
{ url = "https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3/astroid-3.3.9-py3-none-any.whl", hash = "sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248", size = 275339, upload-time = "2025-03-09T11:54:34.489Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -111,14 +111,14 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "click"
|
name = "click"
|
||||||
version = "8.2.0"
|
version = "8.1.8"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/cd/0f/62ca20172d4f87d93cf89665fbaedcd560ac48b465bd1d92bfc7ea6b0a41/click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d", size = 235857, upload-time = "2025-05-10T22:21:03.111Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a2/58/1f37bf81e3c689cc74ffa42102fa8915b59085f54a6e4a80bc6265c0f6bf/click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c", size = 102156, upload-time = "2025-05-10T22:21:01.352Z" },
|
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -191,14 +191,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "exceptiongroup"
|
name = "exceptiongroup"
|
||||||
version = "1.3.0"
|
version = "1.2.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883, upload-time = "2024-07-12T22:26:00.161Z" }
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
|
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" },
|
{ url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453, upload-time = "2024-07-12T22:25:58.476Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -263,13 +260,13 @@ dev = [
|
|||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "astroid", specifier = "==3.3.10" },
|
{ name = "astroid", specifier = "==3.3.9" },
|
||||||
{ name = "attrs", specifier = "==25.3.0" },
|
{ name = "attrs", specifier = "==25.3.0" },
|
||||||
{ name = "certifi", specifier = "==2025.4.26" },
|
{ name = "certifi", specifier = "==2025.4.26" },
|
||||||
{ name = "charset-normalizer", specifier = "==3.4.2" },
|
{ name = "charset-normalizer", specifier = "==3.4.2" },
|
||||||
{ name = "click", specifier = "==8.2.0" },
|
{ name = "click", specifier = "==8.1.8" },
|
||||||
{ name = "dill", specifier = "==0.4.0" },
|
{ name = "dill", specifier = "==0.4.0" },
|
||||||
{ name = "exceptiongroup", specifier = "==1.3.0" },
|
{ name = "exceptiongroup", specifier = "==1.2.2" },
|
||||||
{ name = "idna", specifier = "==3.10" },
|
{ name = "idna", specifier = "==3.10" },
|
||||||
{ name = "iniconfig", specifier = "==2.1.0" },
|
{ name = "iniconfig", specifier = "==2.1.0" },
|
||||||
{ name = "lazy-object-proxy", specifier = "==1.11.0" },
|
{ name = "lazy-object-proxy", specifier = "==1.11.0" },
|
||||||
@ -277,7 +274,7 @@ requires-dist = [
|
|||||||
{ name = "mypy-extensions", specifier = "==1.1.0" },
|
{ name = "mypy-extensions", specifier = "==1.1.0" },
|
||||||
{ name = "packaging", specifier = "==25.0" },
|
{ name = "packaging", specifier = "==25.0" },
|
||||||
{ name = "pathspec", specifier = "==0.12.1" },
|
{ name = "pathspec", specifier = "==0.12.1" },
|
||||||
{ name = "platformdirs", specifier = "==4.3.8" },
|
{ name = "platformdirs", specifier = "==4.3.7" },
|
||||||
{ name = "pluggy", specifier = "==1.5.0" },
|
{ name = "pluggy", specifier = "==1.5.0" },
|
||||||
{ name = "py", specifier = "==1.11.0" },
|
{ name = "py", specifier = "==1.11.0" },
|
||||||
{ name = "pyparsing", specifier = "==3.2.3" },
|
{ name = "pyparsing", specifier = "==3.2.3" },
|
||||||
@ -364,11 +361,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "platformdirs"
|
name = "platformdirs"
|
||||||
version = "4.3.8"
|
version = "4.3.7"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362, upload-time = "2025-05-07T22:47:42.121Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/b6/2d/7d512a3913d60623e7eb945c6d1b4f0bddf1d0b7ada5225274c87e5b53d1/platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351", size = 21291, upload-time = "2025-03-19T20:36:10.989Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" },
|
{ url = "https://files.pythonhosted.org/packages/6d/45/59578566b3275b8fd9157885918fcd0c4d74162928a5310926887b856a51/platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94", size = 18499, upload-time = "2025-03-19T20:36:09.038Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -533,15 +530,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955, upload-time = "2024-08-14T08:19:40.05Z" },
|
{ url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955, upload-time = "2024-08-14T08:19:40.05Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "typing-extensions"
|
|
||||||
version = "4.13.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967, upload-time = "2025-04-10T14:19:05.416Z" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806, upload-time = "2025-04-10T14:19:03.967Z" },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "urllib3"
|
name = "urllib3"
|
||||||
version = "2.4.0"
|
version = "2.4.0"
|
||||||
|
Reference in New Issue
Block a user