deepl-haystack 0.3.1__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/workflows/bump.yml +4 -4
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/workflows/lint.yml +1 -1
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/workflows/publish.yml +1 -1
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/workflows/release.yml +2 -2
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/workflows/test.yml +3 -3
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/PKG-INFO +2 -2
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/pyproject.toml +4 -4
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/tests/test_deepl_document_translator.py +27 -1
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/tests/test_deepl_text_translator.py +25 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/uv.lock +35 -36
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/CODEOWNERS +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.github/dependabot.yml +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.gitignore +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/.pre-commit-config.yaml +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/LICENSE +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/Makefile +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/README.md +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/deepl_haystack/__init__.py +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/deepl_haystack/components.py +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/tests/__init__.py +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/tests/conftest.py +0 -0
- {deepl_haystack-0.3.1 → deepl_haystack-0.4.0}/tests/test_deepl_haystack_init.py +0 -0
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
contents: 'write'
|
|
21
21
|
id-token: 'write'
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
24
|
- name: Install uv
|
|
25
25
|
uses: astral-sh/setup-uv@v7
|
|
26
26
|
with:
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
ENCRYPTED_SECRET=${{ needs.create-release-branch.outputs.encrypted-version }};
|
|
65
65
|
VERSION=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode | openssl enc -d -a -k "password");
|
|
66
66
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
67
|
-
- uses: actions/checkout@
|
|
67
|
+
- uses: actions/checkout@v7
|
|
68
68
|
with:
|
|
69
69
|
ref: main
|
|
70
70
|
- name: Reset release branch
|
|
@@ -72,7 +72,7 @@ jobs:
|
|
|
72
72
|
git fetch origin release/${{ steps.decrypt-tag.outputs.version }}:release/${{ steps.decrypt-tag.outputs.version }}
|
|
73
73
|
git reset --hard release/${{ steps.decrypt-tag.outputs.version }}
|
|
74
74
|
- name: Generate token for release bot
|
|
75
|
-
uses: actions/create-github-app-token@
|
|
75
|
+
uses: actions/create-github-app-token@v3
|
|
76
76
|
id: generate-token
|
|
77
77
|
with:
|
|
78
78
|
app-id: ${{ secrets.RELEASE_BOT_APP_ID }}
|
|
@@ -105,7 +105,7 @@ jobs:
|
|
|
105
105
|
ENCRYPTED_SECRET=${{ needs.create-release-branch.outputs.encrypted-version }};
|
|
106
106
|
VERSION=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode | openssl enc -d -a -k "password");
|
|
107
107
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
108
|
-
- uses: actions/checkout@
|
|
108
|
+
- uses: actions/checkout@v7
|
|
109
109
|
with:
|
|
110
110
|
fetch-depth: 0
|
|
111
111
|
- name: Delete release branch
|
|
@@ -13,14 +13,14 @@ jobs:
|
|
|
13
13
|
contents: 'write'
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout
|
|
16
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v7
|
|
17
17
|
- name: Get release tag
|
|
18
18
|
id: get-tag
|
|
19
19
|
run: |
|
|
20
20
|
TAG=$(echo "${{ github.event.head_commit.message }}" | head -n1 | cut -d" " -f7);
|
|
21
21
|
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
|
22
22
|
- name: Release
|
|
23
|
-
uses: softprops/action-gh-release@
|
|
23
|
+
uses: softprops/action-gh-release@v3
|
|
24
24
|
with:
|
|
25
25
|
generate_release_notes: true
|
|
26
26
|
make_latest: true
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
fail-fast: false
|
|
20
20
|
runs-on: ${{ matrix.os }}
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@v7
|
|
23
23
|
- name: Install uv
|
|
24
24
|
uses: astral-sh/setup-uv@v7
|
|
25
25
|
with:
|
|
@@ -29,7 +29,7 @@ jobs:
|
|
|
29
29
|
run: uv sync --no-default-groups --group ci --group test
|
|
30
30
|
- name: Test
|
|
31
31
|
run: make test-unit
|
|
32
|
-
- uses: codecov/codecov-action@
|
|
32
|
+
- uses: codecov/codecov-action@v7
|
|
33
33
|
with:
|
|
34
34
|
fail_ci_if_error: true
|
|
35
35
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
env:
|
|
46
46
|
DEEPL_API_KEY: ${{ secrets.DEEPL_API_KEY }}
|
|
47
47
|
steps:
|
|
48
|
-
- uses: actions/checkout@
|
|
48
|
+
- uses: actions/checkout@v7
|
|
49
49
|
- name: Install uv
|
|
50
50
|
uses: astral-sh/setup-uv@v7
|
|
51
51
|
with:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepl-haystack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Haystack integration with DeepL translation services provider.
|
|
5
5
|
Project-URL: Homepage, https://github.com/dribia/deepl-haystack
|
|
6
6
|
Project-URL: Repository, https://github.com/dribia/deepl-haystack
|
|
@@ -23,7 +23,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
23
23
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
24
|
Requires-Python: <3.14,>=3.9
|
|
25
25
|
Requires-Dist: deepl<2,>=1.19.1
|
|
26
|
-
Requires-Dist: haystack-ai<
|
|
26
|
+
Requires-Dist: haystack-ai<4,>=2.0.0
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
|
|
29
29
|
DeepL Haystack Integration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "deepl-haystack"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
description = "Haystack integration with DeepL translation services provider."
|
|
5
5
|
authors = [{ name = "Albert Iribarne", email = "iribarne@dribia.com" }]
|
|
6
6
|
requires-python = ">=3.9,<3.14"
|
|
@@ -30,7 +30,7 @@ classifiers = [
|
|
|
30
30
|
]
|
|
31
31
|
dependencies = [
|
|
32
32
|
"deepl>=1.19.1,<2",
|
|
33
|
-
"haystack-ai>=2.0.0,<
|
|
33
|
+
"haystack-ai>=2.0.0,<4",
|
|
34
34
|
]
|
|
35
35
|
|
|
36
36
|
[project.urls]
|
|
@@ -41,7 +41,7 @@ Repository = "https://github.com/dribia/deepl-haystack"
|
|
|
41
41
|
[dependency-groups]
|
|
42
42
|
dev = ["pre-commit>=4.3.0,<5"]
|
|
43
43
|
ci = [
|
|
44
|
-
"setuptools>=80.9.0,<
|
|
44
|
+
"setuptools>=80.9.0,<83",
|
|
45
45
|
]
|
|
46
46
|
test = [
|
|
47
47
|
"pytest>=8.3.5,<9",
|
|
@@ -50,7 +50,7 @@ test = [
|
|
|
50
50
|
"pytest-dotenv>=0.5.2,<0.6",
|
|
51
51
|
]
|
|
52
52
|
lint = [
|
|
53
|
-
"ruff==0.
|
|
53
|
+
"ruff==0.15.10",
|
|
54
54
|
"mypy==1.19.1",
|
|
55
55
|
]
|
|
56
56
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"""Test cases for DeepL translator components."""
|
|
2
2
|
|
|
3
|
+
import inspect
|
|
3
4
|
import os
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
6
7
|
import pytest
|
|
7
8
|
from deepl import DeepLException, Formality, SplitSentences, Translator
|
|
8
|
-
from haystack import Document
|
|
9
|
+
from haystack import Document, Pipeline
|
|
9
10
|
from haystack.utils import Secret
|
|
10
11
|
|
|
11
12
|
from deepl_haystack import DeepLDocumentTranslator
|
|
@@ -218,6 +219,31 @@ class TestDeepLDocumentTranslator:
|
|
|
218
219
|
):
|
|
219
220
|
DeepLDocumentTranslator.from_dict(data)
|
|
220
221
|
|
|
222
|
+
def test_pipeline_serialization_roundtrip(self, monkeypatch):
|
|
223
|
+
"""The component survives a pipeline serialization round-trip.
|
|
224
|
+
|
|
225
|
+
Haystack 3.x gates pipeline deserialization through a trusted-module
|
|
226
|
+
allowlist that only covers Haystack's own namespaces, so loading a
|
|
227
|
+
pipeline that contains a component from this package requires listing
|
|
228
|
+
it in ``allowed_modules``. Haystack 2.x has no such parameter, so it is
|
|
229
|
+
only passed when supported.
|
|
230
|
+
"""
|
|
231
|
+
monkeypatch.setenv("DEEPL_API_KEY", "test-api-key")
|
|
232
|
+
pipeline = Pipeline()
|
|
233
|
+
pipeline.add_component(
|
|
234
|
+
"translator", DeepLDocumentTranslator(target_lang=["ES", "FR"])
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
dumped = pipeline.dumps()
|
|
238
|
+
if "allowed_modules" in inspect.signature(Pipeline.loads).parameters:
|
|
239
|
+
loaded = Pipeline.loads(dumped, allowed_modules=["deepl_haystack"])
|
|
240
|
+
else:
|
|
241
|
+
loaded = Pipeline.loads(dumped)
|
|
242
|
+
|
|
243
|
+
component = loaded.get_component("translator")
|
|
244
|
+
assert isinstance(component, DeepLDocumentTranslator)
|
|
245
|
+
assert component.target_lang == ["ES", "FR"]
|
|
246
|
+
|
|
221
247
|
def test_run_one_doc(self, monkeypatch, mock_translation, caplog):
|
|
222
248
|
"""Test the run method of the DeepLDocumentTranslator class.
|
|
223
249
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"""Test cases for DeepL translator components."""
|
|
2
2
|
|
|
3
|
+
import inspect
|
|
3
4
|
import os
|
|
4
5
|
from typing import Any
|
|
5
6
|
from unittest.mock import patch
|
|
6
7
|
|
|
7
8
|
import pytest
|
|
8
9
|
from deepl import DeepLException, Formality, SplitSentences, Translator
|
|
10
|
+
from haystack import Pipeline
|
|
9
11
|
from haystack.utils import Secret
|
|
10
12
|
|
|
11
13
|
from deepl_haystack import DeepLTextTranslator
|
|
@@ -211,6 +213,29 @@ class TestDeepLTextTranslator:
|
|
|
211
213
|
):
|
|
212
214
|
DeepLTextTranslator.from_dict(data)
|
|
213
215
|
|
|
216
|
+
def test_pipeline_serialization_roundtrip(self, monkeypatch):
|
|
217
|
+
"""The component survives a pipeline serialization round-trip.
|
|
218
|
+
|
|
219
|
+
Haystack 3.x gates pipeline deserialization through a trusted-module
|
|
220
|
+
allowlist that only covers Haystack's own namespaces, so loading a
|
|
221
|
+
pipeline that contains a component from this package requires listing
|
|
222
|
+
it in ``allowed_modules``. Haystack 2.x has no such parameter, so it is
|
|
223
|
+
only passed when supported.
|
|
224
|
+
"""
|
|
225
|
+
monkeypatch.setenv("DEEPL_API_KEY", "test-api-key")
|
|
226
|
+
pipeline = Pipeline()
|
|
227
|
+
pipeline.add_component("translator", DeepLTextTranslator(target_lang="ES"))
|
|
228
|
+
|
|
229
|
+
dumped = pipeline.dumps()
|
|
230
|
+
if "allowed_modules" in inspect.signature(Pipeline.loads).parameters:
|
|
231
|
+
loaded = Pipeline.loads(dumped, allowed_modules=["deepl_haystack"])
|
|
232
|
+
else:
|
|
233
|
+
loaded = Pipeline.loads(dumped)
|
|
234
|
+
|
|
235
|
+
component = loaded.get_component("translator")
|
|
236
|
+
assert isinstance(component, DeepLTextTranslator)
|
|
237
|
+
assert component.target_lang == "ES"
|
|
238
|
+
|
|
214
239
|
def test_run(self, monkeypatch, mock_translation):
|
|
215
240
|
"""Test the run method of the DeepLTextTranslator class."""
|
|
216
241
|
monkeypatch.setenv("DEEPL_API_KEY", "fake-api-key")
|
|
@@ -220,19 +220,19 @@ toml = [
|
|
|
220
220
|
|
|
221
221
|
[[package]]
|
|
222
222
|
name = "deepl"
|
|
223
|
-
version = "1.
|
|
223
|
+
version = "1.30.0"
|
|
224
224
|
source = { registry = "https://pypi.org/simple" }
|
|
225
225
|
dependencies = [
|
|
226
226
|
{ name = "requests" },
|
|
227
227
|
]
|
|
228
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
228
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/f2/87bf02eb97d20695bd39e1f8b33563bb85fc86301241c33f1c5e1a6dab86/deepl-1.30.0.tar.gz", hash = "sha256:491da545da6f6145db69a19bc4460a8fb66b29307c68d55f9297910cdcb577d9", size = 56527, upload-time = "2026-04-09T18:38:50.727Z" }
|
|
229
229
|
wheels = [
|
|
230
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
230
|
+
{ url = "https://files.pythonhosted.org/packages/b2/41/1174945272c2d5331d5e49d29110c95e24458d681d4949ffef3b67210745/deepl-1.30.0-py3-none-any.whl", hash = "sha256:b4e08ef484522ba62ba4895a9c43a980981b07d2e989cc99b5ee68e00d3675c3", size = 49903, upload-time = "2026-04-09T18:38:49.481Z" },
|
|
231
231
|
]
|
|
232
232
|
|
|
233
233
|
[[package]]
|
|
234
234
|
name = "deepl-haystack"
|
|
235
|
-
version = "0.
|
|
235
|
+
version = "0.4.0"
|
|
236
236
|
source = { editable = "." }
|
|
237
237
|
dependencies = [
|
|
238
238
|
{ name = "deepl" },
|
|
@@ -260,15 +260,15 @@ test = [
|
|
|
260
260
|
[package.metadata]
|
|
261
261
|
requires-dist = [
|
|
262
262
|
{ name = "deepl", specifier = ">=1.19.1,<2" },
|
|
263
|
-
{ name = "haystack-ai", specifier = ">=2.0.0,<
|
|
263
|
+
{ name = "haystack-ai", specifier = ">=2.0.0,<4" },
|
|
264
264
|
]
|
|
265
265
|
|
|
266
266
|
[package.metadata.requires-dev]
|
|
267
|
-
ci = [{ name = "setuptools", specifier = ">=80.9.0,<
|
|
267
|
+
ci = [{ name = "setuptools", specifier = ">=80.9.0,<83" }]
|
|
268
268
|
dev = [{ name = "pre-commit", specifier = ">=4.3.0,<5" }]
|
|
269
269
|
lint = [
|
|
270
270
|
{ name = "mypy", specifier = "==1.19.1" },
|
|
271
|
-
{ name = "ruff", specifier = "==0.
|
|
271
|
+
{ name = "ruff", specifier = "==0.15.10" },
|
|
272
272
|
]
|
|
273
273
|
test = [
|
|
274
274
|
{ name = "pytest", specifier = ">=8.3.5,<9" },
|
|
@@ -309,7 +309,7 @@ name = "exceptiongroup"
|
|
|
309
309
|
version = "1.3.0"
|
|
310
310
|
source = { registry = "https://pypi.org/simple" }
|
|
311
311
|
dependencies = [
|
|
312
|
-
{ name = "typing-extensions"
|
|
312
|
+
{ name = "typing-extensions" },
|
|
313
313
|
]
|
|
314
314
|
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" }
|
|
315
315
|
wheels = [
|
|
@@ -1224,16 +1224,16 @@ wheels = [
|
|
|
1224
1224
|
|
|
1225
1225
|
[[package]]
|
|
1226
1226
|
name = "pytest-cov"
|
|
1227
|
-
version = "7.
|
|
1227
|
+
version = "7.1.0"
|
|
1228
1228
|
source = { registry = "https://pypi.org/simple" }
|
|
1229
1229
|
dependencies = [
|
|
1230
1230
|
{ name = "coverage", extra = ["toml"] },
|
|
1231
1231
|
{ name = "pluggy" },
|
|
1232
1232
|
{ name = "pytest" },
|
|
1233
1233
|
]
|
|
1234
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1234
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload-time = "2026-03-21T20:11:16.284Z" }
|
|
1235
1235
|
wheels = [
|
|
1236
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1236
|
+
{ url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" },
|
|
1237
1237
|
]
|
|
1238
1238
|
|
|
1239
1239
|
[[package]]
|
|
@@ -1499,37 +1499,36 @@ wheels = [
|
|
|
1499
1499
|
|
|
1500
1500
|
[[package]]
|
|
1501
1501
|
name = "ruff"
|
|
1502
|
-
version = "0.
|
|
1503
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1504
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1505
|
-
wheels = [
|
|
1506
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1507
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1508
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1509
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1510
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1511
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1512
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1513
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1514
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1515
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1516
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1517
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1518
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1519
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1520
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1521
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1522
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1523
|
-
{ url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" },
|
|
1502
|
+
version = "0.15.10"
|
|
1503
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1504
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/d9/aa3f7d59a10ef6b14fe3431706f854dbf03c5976be614a9796d36326810c/ruff-0.15.10.tar.gz", hash = "sha256:d1f86e67ebfdef88e00faefa1552b5e510e1d35f3be7d423dc7e84e63788c94e", size = 4631728, upload-time = "2026-04-09T14:06:09.884Z" }
|
|
1505
|
+
wheels = [
|
|
1506
|
+
{ url = "https://files.pythonhosted.org/packages/eb/00/a1c2fdc9939b2c03691edbda290afcd297f1f389196172826b03d6b6a595/ruff-0.15.10-py3-none-linux_armv6l.whl", hash = "sha256:0744e31482f8f7d0d10a11fcbf897af272fefdfcb10f5af907b18c2813ff4d5f", size = 10563362, upload-time = "2026-04-09T14:06:21.189Z" },
|
|
1507
|
+
{ url = "https://files.pythonhosted.org/packages/5c/15/006990029aea0bebe9d33c73c3e28c80c391ebdba408d1b08496f00d422d/ruff-0.15.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b1e7c16ea0ff5a53b7c2df52d947e685973049be1cdfe2b59a9c43601897b22e", size = 10951122, upload-time = "2026-04-09T14:06:02.236Z" },
|
|
1508
|
+
{ url = "https://files.pythonhosted.org/packages/f2/c0/4ac978fe874d0618c7da647862afe697b281c2806f13ce904ad652fa87e4/ruff-0.15.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:93cc06a19e5155b4441dd72808fdf84290d84ad8a39ca3b0f994363ade4cebb1", size = 10314005, upload-time = "2026-04-09T14:06:00.026Z" },
|
|
1509
|
+
{ url = "https://files.pythonhosted.org/packages/da/73/c209138a5c98c0d321266372fc4e33ad43d506d7e5dd817dd89b60a8548f/ruff-0.15.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83e1dd04312997c99ea6965df66a14fb4f03ba978564574ffc68b0d61fd3989e", size = 10643450, upload-time = "2026-04-09T14:05:42.137Z" },
|
|
1510
|
+
{ url = "https://files.pythonhosted.org/packages/ec/76/0deec355d8ec10709653635b1f90856735302cb8e149acfdf6f82a5feb70/ruff-0.15.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8154d43684e4333360fedd11aaa40b1b08a4e37d8ffa9d95fee6fa5b37b6fab1", size = 10379597, upload-time = "2026-04-09T14:05:49.984Z" },
|
|
1511
|
+
{ url = "https://files.pythonhosted.org/packages/dc/be/86bba8fc8798c081e28a4b3bb6d143ccad3fd5f6f024f02002b8f08a9fa3/ruff-0.15.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ab88715f3a6deb6bde6c227f3a123410bec7b855c3ae331b4c006189e895cef", size = 11146645, upload-time = "2026-04-09T14:06:12.246Z" },
|
|
1512
|
+
{ url = "https://files.pythonhosted.org/packages/a8/89/140025e65911b281c57be1d385ba1d932c2366ca88ae6663685aed8d4881/ruff-0.15.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a768ff5969b4f44c349d48edf4ab4f91eddb27fd9d77799598e130fb628aa158", size = 12030289, upload-time = "2026-04-09T14:06:04.776Z" },
|
|
1513
|
+
{ url = "https://files.pythonhosted.org/packages/88/de/ddacca9545a5e01332567db01d44bd8cf725f2db3b3d61a80550b48308ea/ruff-0.15.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ee3ef42dab7078bda5ff6a1bcba8539e9857deb447132ad5566a038674540d0", size = 11496266, upload-time = "2026-04-09T14:05:55.485Z" },
|
|
1514
|
+
{ url = "https://files.pythonhosted.org/packages/bc/bb/7ddb00a83760ff4a83c4e2fc231fd63937cc7317c10c82f583302e0f6586/ruff-0.15.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51cb8cc943e891ba99989dd92d61e29b1d231e14811db9be6440ecf25d5c1609", size = 11256418, upload-time = "2026-04-09T14:05:57.69Z" },
|
|
1515
|
+
{ url = "https://files.pythonhosted.org/packages/dc/8d/55de0d35aacf6cd50b6ee91ee0f291672080021896543776f4170fc5c454/ruff-0.15.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:e59c9bdc056a320fb9ea1700a8d591718b8faf78af065484e801258d3a76bc3f", size = 11288416, upload-time = "2026-04-09T14:05:44.695Z" },
|
|
1516
|
+
{ url = "https://files.pythonhosted.org/packages/68/cf/9438b1a27426ec46a80e0a718093c7f958ef72f43eb3111862949ead3cc1/ruff-0.15.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:136c00ca2f47b0018b073f28cb5c1506642a830ea941a60354b0e8bc8076b151", size = 10621053, upload-time = "2026-04-09T14:05:52.782Z" },
|
|
1517
|
+
{ url = "https://files.pythonhosted.org/packages/4c/50/e29be6e2c135e9cd4cb15fbade49d6a2717e009dff3766dd080fcb82e251/ruff-0.15.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8b80a2f3c9c8a950d6237f2ca12b206bccff626139be9fa005f14feb881a1ae8", size = 10378302, upload-time = "2026-04-09T14:06:14.361Z" },
|
|
1518
|
+
{ url = "https://files.pythonhosted.org/packages/18/2f/e0b36a6f99c51bb89f3a30239bc7bf97e87a37ae80aa2d6542d6e5150364/ruff-0.15.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:e3e53c588164dc025b671c9df2462429d60357ea91af7e92e9d56c565a9f1b07", size = 10850074, upload-time = "2026-04-09T14:06:16.581Z" },
|
|
1519
|
+
{ url = "https://files.pythonhosted.org/packages/11/08/874da392558ce087a0f9b709dc6ec0d60cbc694c1c772dab8d5f31efe8cb/ruff-0.15.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b0c52744cf9f143a393e284125d2576140b68264a93c6716464e129a3e9adb48", size = 11358051, upload-time = "2026-04-09T14:06:18.948Z" },
|
|
1520
|
+
{ url = "https://files.pythonhosted.org/packages/e4/46/602938f030adfa043e67112b73821024dc79f3ab4df5474c25fa4c1d2d14/ruff-0.15.10-py3-none-win32.whl", hash = "sha256:d4272e87e801e9a27a2e8df7b21011c909d9ddd82f4f3281d269b6ba19789ca5", size = 10588964, upload-time = "2026-04-09T14:06:07.14Z" },
|
|
1521
|
+
{ url = "https://files.pythonhosted.org/packages/25/b6/261225b875d7a13b33a6d02508c39c28450b2041bb01d0f7f1a83d569512/ruff-0.15.10-py3-none-win_amd64.whl", hash = "sha256:28cb32d53203242d403d819fd6983152489b12e4a3ae44993543d6fe62ab42ed", size = 11745044, upload-time = "2026-04-09T14:05:39.473Z" },
|
|
1522
|
+
{ url = "https://files.pythonhosted.org/packages/58/ed/dea90a65b7d9e69888890fb14c90d7f51bf0c1e82ad800aeb0160e4bacfd/ruff-0.15.10-py3-none-win_arm64.whl", hash = "sha256:601d1610a9e1f1c2165a4f561eeaa2e2ea1e97f3287c5aa258d3dab8b57c6188", size = 11035607, upload-time = "2026-04-09T14:05:47.593Z" },
|
|
1524
1523
|
]
|
|
1525
1524
|
|
|
1526
1525
|
[[package]]
|
|
1527
1526
|
name = "setuptools"
|
|
1528
|
-
version = "
|
|
1527
|
+
version = "82.0.1"
|
|
1529
1528
|
source = { registry = "https://pypi.org/simple" }
|
|
1530
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1529
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" }
|
|
1531
1530
|
wheels = [
|
|
1532
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1531
|
+
{ url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" },
|
|
1533
1532
|
]
|
|
1534
1533
|
|
|
1535
1534
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|