From 81e8893dced6fdfa061fbd20ca224882305c1d5d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 Aug 2025 23:47:34 +0000 Subject: [PATCH 1/7] Initial plan From 018b44a2791b606299bd51757898233cf242dd68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 Aug 2025 23:51:28 +0000 Subject: [PATCH 2/7] Initial analysis: Identify ResourceWarning issue in parse_file_input Co-authored-by: harshil21 <37377066+harshil21@users.noreply.github.com> --- uv.lock | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/uv.lock b/uv.lock index ae249a9d97a..4f41a542c35 100644 --- a/uv.lock +++ b/uv.lock @@ -10,6 +10,18 @@ resolution-markers = [ "python_full_version < '3.10'", ] +[[package]] +name = "accessible-pygments" +version = "0.0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" }, +] + [[package]] name = "aiolimiter" version = "1.2.1" @@ -639,9 +651,10 @@ wheels = [ [[package]] name = "furo" -version = "2024.8.6" +version = "2025.7.19" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "accessible-pygments" }, { name = "beautifulsoup4" }, { name = "pygments" }, { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -649,9 +662,9 @@ dependencies = [ { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "sphinx-basic-ng" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/e2/d351d69a9a9e4badb4a5be062c2d0e87bd9e6c23b5e57337fef14bef34c8/furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01", size = 1661506, upload-time = "2024-08-06T08:07:57.567Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/69/312cd100fa45ddaea5a588334d2defa331ff427bcb61f5fe2ae61bdc3762/furo-2025.7.19.tar.gz", hash = "sha256:4164b2cafcf4023a59bb3c594e935e2516f6b9d35e9a5ea83d8f6b43808fe91f", size = 1662054, upload-time = "2025-07-19T10:52:09.754Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/48/e791a7ed487dbb9729ef32bb5d1af16693d8925f4366befef54119b2e576/furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c", size = 341333, upload-time = "2024-08-06T08:07:54.44Z" }, + { url = "https://files.pythonhosted.org/packages/3a/34/2b07b72bee02a63241d654f5d8af87a2de977c59638eec41ca356ab915cd/furo-2025.7.19-py3-none-any.whl", hash = "sha256:bdea869822dfd2b494ea84c0973937e35d1575af088b6721a29c7f7878adc9e3", size = 342175, upload-time = "2025-07-19T10:52:02.399Z" }, ] [[package]] @@ -1241,7 +1254,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.4.0" +version = "8.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1252,9 +1265,9 @@ dependencies = [ { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/aa/405082ce2749be5398045152251ac69c0f3578c7077efc53431303af97ce/pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6", size = 1515232, upload-time = "2025-06-02T17:36:30.03Z" } +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/de/afa024cbe022b1b318a3d224125aa24939e99b4ff6f22e0ba639a2eaee47/pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e", size = 363797, upload-time = "2025-06-02T17:36:27.859Z" }, + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, ] [[package]] @@ -1285,15 +1298,15 @@ wheels = [ [[package]] name = "pytest-xdist" -version = "3.6.1" +version = "3.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "execnet" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060, upload-time = "2024-04-28T19:29:54.414Z" } +sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108, upload-time = "2024-04-28T19:29:52.813Z" }, + { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, ] [[package]] @@ -1428,13 +1441,13 @@ all = [ { name = "build" }, { name = "chango", marker = "python_full_version >= '3.12'", specifier = "~=0.4.0" }, { name = "flaky", specifier = ">=3.8.1" }, - { name = "furo", specifier = "==2024.8.6" }, + { name = "furo", specifier = "==2025.7.19" }, { name = "pre-commit" }, { name = "pydantic", marker = "python_full_version >= '3.14'", git = "https://github.com/pydantic/pydantic" }, - { name = "pytest", specifier = "==8.4.0" }, + { name = "pytest", specifier = "==8.4.1" }, { name = "pytest-asyncio", specifier = "==0.21.2" }, { name = "pytest-cov" }, - { name = "pytest-xdist", specifier = "==3.6.1" }, + { name = "pytest-xdist", specifier = "==3.8.0" }, { name = "pytz" }, { name = "sphinx", marker = "python_full_version >= '3.11'", specifier = "==8.2.3" }, { name = "sphinx-build-compatibility", git = "https://github.com/readthedocs/sphinx-build-compatibility.git?rev=58aabc5f207c6c2421f23d3578adc0b14af57047" }, @@ -1446,7 +1459,7 @@ all = [ ] docs = [ { name = "chango", marker = "python_full_version >= '3.12'", specifier = "~=0.4.0" }, - { name = "furo", specifier = "==2024.8.6" }, + { name = "furo", specifier = "==2025.7.19" }, { name = "pydantic", marker = "python_full_version >= '3.14'", git = "https://github.com/pydantic/pydantic" }, { name = "sphinx", marker = "python_full_version >= '3.11'", specifier = "==8.2.3" }, { name = "sphinx-build-compatibility", git = "https://github.com/readthedocs/sphinx-build-compatibility.git?rev=58aabc5f207c6c2421f23d3578adc0b14af57047" }, @@ -1459,10 +1472,10 @@ tests = [ { name = "beautifulsoup4" }, { name = "build" }, { name = "flaky", specifier = ">=3.8.1" }, - { name = "pytest", specifier = "==8.4.0" }, + { name = "pytest", specifier = "==8.4.1" }, { name = "pytest-asyncio", specifier = "==0.21.2" }, { name = "pytest-cov" }, - { name = "pytest-xdist", specifier = "==3.6.1" }, + { name = "pytest-xdist", specifier = "==3.8.0" }, { name = "pytz" }, { name = "tzdata" }, ] From 359f8f58384c091a5257bfab6247370331d67979 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 Aug 2025 23:57:05 +0000 Subject: [PATCH 3/7] Fix ResourceWarning when passing pathlib.Path to parse_file_input Co-authored-by: harshil21 <37377066+harshil21@users.noreply.github.com> --- src/telegram/_utils/files.py | 3 ++- tests/_utils/test_files.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/telegram/_utils/files.py b/src/telegram/_utils/files.py index 9bacce86f3c..860c1612351 100644 --- a/src/telegram/_utils/files.py +++ b/src/telegram/_utils/files.py @@ -145,7 +145,8 @@ def parse_file_input( # pylint: disable=too-many-return-statements path = Path(file_input) if local_mode: return path.absolute().as_uri() - return InputFile(path.open(mode="rb"), filename=filename, attach=attach) + with path.open(mode="rb") as file_handle: + return InputFile(file_handle, filename=filename, attach=attach) return file_input if isinstance(file_input, bytes): diff --git a/tests/_utils/test_files.py b/tests/_utils/test_files.py index 7d0b5454416..ff5032218f2 100644 --- a/tests/_utils/test_files.py +++ b/tests/_utils/test_files.py @@ -19,6 +19,7 @@ import contextlib import subprocess import sys +import tempfile from pathlib import Path import pytest @@ -156,3 +157,20 @@ def test_load_file_subprocess_pipe(self): proc.kill() # This exception may be thrown if the process has finished before we had the chance # to kill it. + + @pytest.mark.filterwarnings("error::ResourceWarning") + def test_parse_file_input_path_no_resource_warning(self): + """Test that parsing a Path input doesn't generate ResourceWarning.""" + # Create a temporary file + with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp_file: + tmp_file.write(b"test content for resource warning test") + tmp_path = Path(tmp_file.name) + + try: + # This should not raise a ResourceWarning + result = telegram._utils.files.parse_file_input(tmp_path) + assert isinstance(result, InputFile) + assert result.filename.endswith(".png") + finally: + # Clean up + tmp_path.unlink() From 382d44b545e15456ca453e0cf2e61927dc98343a Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 Aug 2025 23:58:39 +0000 Subject: [PATCH 4/7] Add chango fragment for PR #4908 --- changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml diff --git a/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml b/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml new file mode 100644 index 00000000000..dcec8a77a22 --- /dev/null +++ b/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml @@ -0,0 +1,5 @@ +other = "[WIP] `ResourceWarning: unclosed file` when passing `pathlib.Path` to `send_photo`/`send_document`" +[[pull_requests]] +uid = "4908" +author_uid = "Copilot" +closes_threads = ["4907"] From f7263436c2e836dc1fab81e3956ea0284eca9679 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 Aug 2025 00:26:43 +0000 Subject: [PATCH 5/7] Address PR feedback: use tmp_path fixture and update changelog Co-authored-by: harshil21 <37377066+harshil21@users.noreply.github.com> --- .../4908.KnwujH2JruNRZSrTTvvc9B.toml | 4 ++-- tests/_utils/test_files.py | 24 +++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml b/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml index dcec8a77a22..a8359bfc2e4 100644 --- a/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml +++ b/changes/unreleased/4908.KnwujH2JruNRZSrTTvvc9B.toml @@ -1,5 +1,5 @@ -other = "[WIP] `ResourceWarning: unclosed file` when passing `pathlib.Path` to `send_photo`/`send_document`" +bugfixes = "Fix ``ResourceWarning`` when passing ``pathlib.Path`` objects to methods which accept file input" [[pull_requests]] uid = "4908" -author_uid = "Copilot" +author_uid = "harshil21" closes_threads = ["4907"] diff --git a/tests/_utils/test_files.py b/tests/_utils/test_files.py index ff5032218f2..b90ed7a5858 100644 --- a/tests/_utils/test_files.py +++ b/tests/_utils/test_files.py @@ -19,7 +19,6 @@ import contextlib import subprocess import sys -import tempfile from pathlib import Path import pytest @@ -159,18 +158,13 @@ def test_load_file_subprocess_pipe(self): # to kill it. @pytest.mark.filterwarnings("error::ResourceWarning") - def test_parse_file_input_path_no_resource_warning(self): + def test_parse_file_input_path_no_resource_warning(self, tmp_path): """Test that parsing a Path input doesn't generate ResourceWarning.""" - # Create a temporary file - with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp_file: - tmp_file.write(b"test content for resource warning test") - tmp_path = Path(tmp_file.name) - - try: - # This should not raise a ResourceWarning - result = telegram._utils.files.parse_file_input(tmp_path) - assert isinstance(result, InputFile) - assert result.filename.endswith(".png") - finally: - # Clean up - tmp_path.unlink() + # Create a temporary file using pytest's tmp_path fixture + test_file = tmp_path / "test_file.png" + test_file.write_bytes(b"test content for resource warning test") + + # This should not raise a ResourceWarning + result = telegram._utils.files.parse_file_input(test_file) + assert isinstance(result, InputFile) + assert result.filename.endswith(".png") From fbebbb66075be32bc86c4937c70768f178312a4b Mon Sep 17 00:00:00 2001 From: Harshil <37377066+harshil21@users.noreply.github.com> Date: Thu, 14 Aug 2025 23:00:38 -0400 Subject: [PATCH 6/7] Review: Use data_file in test --- tests/_utils/test_files.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/_utils/test_files.py b/tests/_utils/test_files.py index b90ed7a5858..d789bdcd622 100644 --- a/tests/_utils/test_files.py +++ b/tests/_utils/test_files.py @@ -158,11 +158,9 @@ def test_load_file_subprocess_pipe(self): # to kill it. @pytest.mark.filterwarnings("error::ResourceWarning") - def test_parse_file_input_path_no_resource_warning(self, tmp_path): + def test_parse_file_input_path_no_resource_warning(self): """Test that parsing a Path input doesn't generate ResourceWarning.""" - # Create a temporary file using pytest's tmp_path fixture - test_file = tmp_path / "test_file.png" - test_file.write_bytes(b"test content for resource warning test") + test_file = data_file(filename="telegram.png") # This should not raise a ResourceWarning result = telegram._utils.files.parse_file_input(test_file) From 56ff5250e52ee7d7408cbd54b0adf8527d662e5b Mon Sep 17 00:00:00 2001 From: Harshil <37377066+harshil21@users.noreply.github.com> Date: Sat, 16 Aug 2025 20:20:34 -0400 Subject: [PATCH 7/7] Revert uv.lock changes to this branch --- uv.lock | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/uv.lock b/uv.lock index 4f41a542c35..ae249a9d97a 100644 --- a/uv.lock +++ b/uv.lock @@ -10,18 +10,6 @@ resolution-markers = [ "python_full_version < '3.10'", ] -[[package]] -name = "accessible-pygments" -version = "0.0.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" }, -] - [[package]] name = "aiolimiter" version = "1.2.1" @@ -651,10 +639,9 @@ wheels = [ [[package]] name = "furo" -version = "2025.7.19" +version = "2024.8.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "accessible-pygments" }, { name = "beautifulsoup4" }, { name = "pygments" }, { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -662,9 +649,9 @@ dependencies = [ { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "sphinx-basic-ng" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d0/69/312cd100fa45ddaea5a588334d2defa331ff427bcb61f5fe2ae61bdc3762/furo-2025.7.19.tar.gz", hash = "sha256:4164b2cafcf4023a59bb3c594e935e2516f6b9d35e9a5ea83d8f6b43808fe91f", size = 1662054, upload-time = "2025-07-19T10:52:09.754Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/e2/d351d69a9a9e4badb4a5be062c2d0e87bd9e6c23b5e57337fef14bef34c8/furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01", size = 1661506, upload-time = "2024-08-06T08:07:57.567Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/34/2b07b72bee02a63241d654f5d8af87a2de977c59638eec41ca356ab915cd/furo-2025.7.19-py3-none-any.whl", hash = "sha256:bdea869822dfd2b494ea84c0973937e35d1575af088b6721a29c7f7878adc9e3", size = 342175, upload-time = "2025-07-19T10:52:02.399Z" }, + { url = "https://files.pythonhosted.org/packages/27/48/e791a7ed487dbb9729ef32bb5d1af16693d8925f4366befef54119b2e576/furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c", size = 341333, upload-time = "2024-08-06T08:07:54.44Z" }, ] [[package]] @@ -1254,7 +1241,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.4.1" +version = "8.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1265,9 +1252,9 @@ dependencies = [ { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/aa/405082ce2749be5398045152251ac69c0f3578c7077efc53431303af97ce/pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6", size = 1515232, upload-time = "2025-06-02T17:36:30.03Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, + { url = "https://files.pythonhosted.org/packages/2f/de/afa024cbe022b1b318a3d224125aa24939e99b4ff6f22e0ba639a2eaee47/pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e", size = 363797, upload-time = "2025-06-02T17:36:27.859Z" }, ] [[package]] @@ -1298,15 +1285,15 @@ wheels = [ [[package]] name = "pytest-xdist" -version = "3.8.0" +version = "3.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "execnet" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060, upload-time = "2024-04-28T19:29:54.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108, upload-time = "2024-04-28T19:29:52.813Z" }, ] [[package]] @@ -1441,13 +1428,13 @@ all = [ { name = "build" }, { name = "chango", marker = "python_full_version >= '3.12'", specifier = "~=0.4.0" }, { name = "flaky", specifier = ">=3.8.1" }, - { name = "furo", specifier = "==2025.7.19" }, + { name = "furo", specifier = "==2024.8.6" }, { name = "pre-commit" }, { name = "pydantic", marker = "python_full_version >= '3.14'", git = "https://github.com/pydantic/pydantic" }, - { name = "pytest", specifier = "==8.4.1" }, + { name = "pytest", specifier = "==8.4.0" }, { name = "pytest-asyncio", specifier = "==0.21.2" }, { name = "pytest-cov" }, - { name = "pytest-xdist", specifier = "==3.8.0" }, + { name = "pytest-xdist", specifier = "==3.6.1" }, { name = "pytz" }, { name = "sphinx", marker = "python_full_version >= '3.11'", specifier = "==8.2.3" }, { name = "sphinx-build-compatibility", git = "https://github.com/readthedocs/sphinx-build-compatibility.git?rev=58aabc5f207c6c2421f23d3578adc0b14af57047" }, @@ -1459,7 +1446,7 @@ all = [ ] docs = [ { name = "chango", marker = "python_full_version >= '3.12'", specifier = "~=0.4.0" }, - { name = "furo", specifier = "==2025.7.19" }, + { name = "furo", specifier = "==2024.8.6" }, { name = "pydantic", marker = "python_full_version >= '3.14'", git = "https://github.com/pydantic/pydantic" }, { name = "sphinx", marker = "python_full_version >= '3.11'", specifier = "==8.2.3" }, { name = "sphinx-build-compatibility", git = "https://github.com/readthedocs/sphinx-build-compatibility.git?rev=58aabc5f207c6c2421f23d3578adc0b14af57047" }, @@ -1472,10 +1459,10 @@ tests = [ { name = "beautifulsoup4" }, { name = "build" }, { name = "flaky", specifier = ">=3.8.1" }, - { name = "pytest", specifier = "==8.4.1" }, + { name = "pytest", specifier = "==8.4.0" }, { name = "pytest-asyncio", specifier = "==0.21.2" }, { name = "pytest-cov" }, - { name = "pytest-xdist", specifier = "==3.8.0" }, + { name = "pytest-xdist", specifier = "==3.6.1" }, { name = "pytz" }, { name = "tzdata" }, ]