From d9540be3cb9194cc00e0883e8d901e7d77da635a Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Thu, 12 Dec 2024 17:35:14 -0500 Subject: [PATCH 01/14] pex: switch to SCIE binary instead of PEX --- .../pants/backend/python/goals/export.py | 8 +-- .../pants/backend/python/util_rules/pex.py | 8 +-- .../backend/python/util_rules/pex_cli.py | 50 +++++++++---------- .../python/util_rules/pex_environment.py | 3 +- .../python/util_rules/pex_test_utils.py | 4 +- 5 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/python/pants/backend/python/goals/export.py b/src/python/pants/backend/python/goals/export.py index 588d663e79f..f9a86e369af 100644 --- a/src/python/pants/backend/python/goals/export.py +++ b/src/python/pants/backend/python/goals/export.py @@ -21,7 +21,7 @@ EditableLocalDistsRequest, ) from pants.backend.python.util_rules.pex import Pex, PexRequest, VenvPex -from pants.backend.python.util_rules.pex_cli import PexPEX +from pants.backend.python.util_rules.pex_cli import PexSCIE from pants.backend.python.util_rules.pex_environment import PexEnvironment, PythonExecutable from pants.backend.python.util_rules.pex_requirements import EntireLockfile, Lockfile from pants.core.goals.export import ( @@ -204,7 +204,7 @@ class VenvExportRequest: @rule async def do_export( req: VenvExportRequest, - pex_pex: PexPEX, + pex_scie: PexSCIE, pex_env: PexEnvironment, export_subsys: ExportSubsystem, ) -> ExportResult: @@ -269,7 +269,7 @@ async def do_export( f"(using Python {req.py_version})" ) - merged_digest = await Get(Digest, MergeDigests([pex_pex.digest, requirements_pex.digest])) + merged_digest = await Get(Digest, MergeDigests([pex_scie.digest, requirements_pex.digest])) tmpdir_prefix = f".{uuid.uuid4().hex}.tmp" tmpdir_under_digest_root = os.path.join("{digest_root}", tmpdir_prefix) merged_digest_under_tmpdir = await Get(Digest, AddPrefix(merged_digest, tmpdir_prefix)) @@ -293,7 +293,7 @@ async def do_export( post_processing_cmds = [ PostProcessingCommand( complete_pex_env.create_argv( - os.path.join(tmpdir_under_digest_root, pex_pex.exe), + os.path.join(tmpdir_under_digest_root, pex_scie.exe), *pex_args, ), { diff --git a/src/python/pants/backend/python/util_rules/pex.py b/src/python/pants/backend/python/util_rules/pex.py index cc3019d0586..321017755b0 100644 --- a/src/python/pants/backend/python/util_rules/pex.py +++ b/src/python/pants/backend/python/util_rules/pex.py @@ -28,7 +28,7 @@ ) from pants.backend.python.util_rules import pex_cli, pex_requirements from pants.backend.python.util_rules.interpreter_constraints import InterpreterConstraints -from pants.backend.python.util_rules.pex_cli import PexCliProcess, PexPEX, maybe_log_pex_stderr +from pants.backend.python.util_rules.pex_cli import PexCliProcess, PexSCIE, maybe_log_pex_stderr from pants.backend.python.util_rules.pex_environment import ( CompletePexEnvironment, PexEnvironment, @@ -1373,11 +1373,11 @@ async def determine_venv_pex_resolve_info(venv_pex: VenvPex) -> PexResolveInfo: @rule -async def determine_pex_resolve_info(pex_pex: PexPEX, pex: Pex) -> PexResolveInfo: +async def determine_pex_resolve_info(pex_scie: PexSCIE, pex: Pex) -> PexResolveInfo: process_result = await Get( ProcessResult, - PexProcess( - pex=Pex(digest=pex_pex.digest, name=pex_pex.exe, python=pex.python), + Process( + pex=Pex(digest=pex_scie.digest, name=pex_scie.exe, python=pex.python), argv=[pex.name, "repository", "info", "-v"], input_digest=pex.digest, extra_env={"PEX_MODULE": "pex.tools"}, diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index f35592b2afb..f95b27402dc 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -31,7 +31,6 @@ from pants.option.option_types import ArgsListOption from pants.util.frozendict import FrozenDict from pants.util.logging import LogLevel -from pants.util.meta import classproperty from pants.util.strutil import softwrap logger = logging.getLogger(__name__) @@ -42,9 +41,24 @@ class PexCli(TemplatedExternalTool): name = "pex" help = "The PEX (Python EXecutable) tool (https://github.com/pex-tool/pex)." - default_version = "v2.20.3" - default_url_template = "https://github.com/pex-tool/pex/releases/download/{version}/pex" - version_constraints = ">=2.13.0,<3.0" + default_version = "2.25.2" + default_known_versions = [ + "2.25.2|linux_arm64|84de123dcd7af527d615c8b3034f5d5c33949a92264c71f6d612cbfa50cfa673|23825049", + "2.25.2|linux_x86_64|182643a2e45959d55ba07d427da019c755733282c99897a655815755a751590b|25507528", + "2.25.2|macos_arm64|ce9b92f0bdb7d3916b8ea06a555856b9301959194abc4941a3b0efbbb9d3caa7|21600151", + "2.25.2|macos_x86_64|5479e2608d7966a54e83f90cd9c82b94b247f5b5fe8b4a67e3d6edf1d23dce0e|22189893", + ] + + default_url_template = ( + "https://github.com/pex-tool/pex/releases/download/v{version}/pex-{platform}" + ) + default_url_platform_mapping = { + "linux_arm64": "linux-aarch64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "macos-aarch64", + "macos_x86_64": "macos-x86_64", + } + version_constraints = ">=2.25.0,<3.0" # extra args to be passed to the pex tool; note that they # are going to apply to all invocations of the pex tool. @@ -58,20 +72,6 @@ class PexCli(TemplatedExternalTool): ), ) - @classproperty - def default_known_versions(cls): - return [ - "|".join( - ( - cls.default_version, - plat, - "0100c2e0b9e5dd56b063c98176cdd11b6064c2439d0faefdd3d25453393ed9fb", - "4315782", - ) - ) - for plat in ["macos_arm64", "macos_x86_64", "linux_x86_64", "linux_arm64"] - ] - @dataclass(frozen=True) class PexCliProcess: @@ -120,20 +120,20 @@ def __post_init__(self) -> None: raise ValueError("`--pex-root` flag not allowed. We set its value for you.") -class PexPEX(DownloadedExternalTool): - """The Pex PEX binary.""" +class PexSCIE(DownloadedExternalTool): + """The Pex SCIE binary.""" @rule -async def download_pex_pex(pex_cli: PexCli, platform: Platform) -> PexPEX: +async def download_pex_pex(pex_cli: PexCli, platform: Platform) -> PexSCIE: pex_pex = await Get(DownloadedExternalTool, ExternalToolRequest, pex_cli.get_request(platform)) - return PexPEX(digest=pex_pex.digest, exe=pex_pex.exe) + return PexSCIE(digest=pex_pex.digest, exe=pex_pex.exe) @rule async def setup_pex_cli_process( request: PexCliProcess, - pex_pex: PexPEX, + pex_scie: PexSCIE, pex_env: PexEnvironment, bootstrap_python: PythonBuildStandaloneBinary, python_native_code: PythonNativeCodeSubsystem.EnvironmentAware, @@ -151,7 +151,7 @@ async def setup_pex_cli_process( gets.append(Get(Digest, CreateDigest((ca_certs_fc,)))) cert_args = ["--cert", ca_certs_fc.path] - digests_to_merge = [pex_pex.digest] + digests_to_merge = [pex_scie.digest] digests_to_merge.extend(await MultiGet(gets)) if request.additional_input_digest: digests_to_merge.append(request.additional_input_digest) @@ -203,7 +203,7 @@ async def setup_pex_cli_process( ] complete_pex_env = pex_env.in_sandbox(working_directory=None) - normalized_argv = complete_pex_env.create_argv(pex_pex.exe, *args) + normalized_argv = complete_pex_env.create_argv(pex_scie.exe, *args) env = { **complete_pex_env.environment_dict(python=bootstrap_python), **python_native_code.subprocess_env_vars, diff --git a/src/python/pants/backend/python/util_rules/pex_environment.py b/src/python/pants/backend/python/util_rules/pex_environment.py index 5137179f5ba..14d948591e6 100644 --- a/src/python/pants/backend/python/util_rules/pex_environment.py +++ b/src/python/pants/backend/python/util_rules/pex_environment.py @@ -218,7 +218,8 @@ def create_argv(self, pex_filepath: str, *args: str) -> tuple[str, ...]: if self._working_directory else pex_filepath ) - return (self._pex_environment.bootstrap_python.path, pex_relpath, *args) + # Use the SCIE exe path and then "pex" so we get the pex tool. (Other choices are "pex3" and "pex-tools".) + return (pex_relpath, "pex", *args) def environment_dict( self, *, python: PythonExecutable | PythonBuildStandaloneBinary | None = None diff --git a/src/python/pants/backend/python/util_rules/pex_test_utils.py b/src/python/pants/backend/python/util_rules/pex_test_utils.py index ed6174435e3..0dd64919b3d 100644 --- a/src/python/pants/backend/python/util_rules/pex_test_utils.py +++ b/src/python/pants/backend/python/util_rules/pex_test_utils.py @@ -20,7 +20,7 @@ VenvPex, VenvPexProcess, ) -from pants.backend.python.util_rules.pex_cli import PexPEX +from pants.backend.python.util_rules.pex_cli import PexSCIE from pants.backend.python.util_rules.pex_requirements import EntireLockfile, PexRequirements from pants.engine.fs import Digest from pants.engine.process import Process, ProcessResult @@ -172,7 +172,7 @@ def create_pex_and_get_pex_info( def rules(): return [ - QueryRule(PexPEX, ()), + QueryRule(PexSCIE, ()), QueryRule(Pex, (PexRequest,)), QueryRule(VenvPex, (PexRequest,)), QueryRule(Process, (PexProcess,)), From 88a43d036dec68eac77a8add0413ca10cbd06196 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Thu, 12 Dec 2024 17:43:28 -0500 Subject: [PATCH 02/14] re-run generate lockfiles --- 3rdparty/python/flake8.lock | 35 +- 3rdparty/python/mypy.lock | 15 +- 3rdparty/python/pbs-script-requirements.lock | 169 +++++----- 3rdparty/python/pytest.lock | 224 +++++++------ 3rdparty/python/user_reqs.lock | 325 +++++++++++-------- 5 files changed, 424 insertions(+), 344 deletions(-) diff --git a/3rdparty/python/flake8.lock b/3rdparty/python/flake8.lock index 7e0eb17a93a..805b0ec308b 100644 --- a/3rdparty/python/flake8.lock +++ b/3rdparty/python/flake8.lock @@ -27,6 +27,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -77,33 +78,33 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b7e027bbb52be2ceb779ee12484cdeef52b0ad3c1fcb8846292bdb86d3034681", - "url": "https://files.pythonhosted.org/packages/3a/aa/93667d6f398749d1a9dd37d646e092f9f1baade7cbac948331b50a1d513c/flake8_comprehensions-3.15.0-py3-none-any.whl" + "hash": "7c1eadc9d22e765f39857798febe7766b4d9c519793c6c149e3e13bf99693f70", + "url": "https://files.pythonhosted.org/packages/5f/bf/0cf8d3c9a233620840f209490c4907d7d416d066557396ebda678c58de09/flake8_comprehensions-3.16.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "923c22603e0310376a6b55b03efebdc09753c69f2d977755cba8bb73458a5d4d", - "url": "https://files.pythonhosted.org/packages/60/fa/68481f25fc8ecdbe8a763062ba4f5b17fa4ef7fc0646c081267cef4f67e5/flake8_comprehensions-3.15.0.tar.gz" + "hash": "9cbf789905a8f03f9d350fb82b17b264d9a16c7ce3542b2a7b871ef568cafabe", + "url": "https://files.pythonhosted.org/packages/6d/7d/7ffaa876ca5b330fc244287208dce1d12515b88a69488ea90ab58c94501d/flake8_comprehensions-3.16.0.tar.gz" } ], "project_name": "flake8-comprehensions", "requires_dists": [ "flake8!=3.2,>=3" ], - "requires_python": ">=3.8", - "version": "3.15.0" + "requires_python": ">=3.9", + "version": "3.16.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "454b0c6df39c03bd8b1891abc9317981901a72ef426a4d56eb5fc689eef8fc65", - "url": "https://files.pythonhosted.org/packages/27/0d/9f3e09dd88b3bf321465d5d78e37aeb4f9022ee6764ea003d9ec455b2d61/flake8_no_implicit_concat-0.3.5-py3-none-any.whl" + "hash": "a173b4720fed1611b9b127e194aa7e46aa86fed3425df8d37267b78cbbae2e07", + "url": "https://files.pythonhosted.org/packages/11/43/4eb677c2e8d165dc89d05421b36850b1f06d69e6996622d6599ab85b309b/flake8_no_implicit_concat-0.3.7-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "8e675477c40b21d9481915a4a257260b17e29137b0b76406657c3605f79b2b42", - "url": "https://files.pythonhosted.org/packages/1f/3c/c86797634204844c29eb60e00bdf2079cdda97d40905e861e57af60b9567/flake8-no-implicit-concat-0.3.5.tar.gz" + "hash": "8472f2a6ddb11980e9bc35aa289d051e36d1e69c66ecd0fe5f5406ff8ab91e3a", + "url": "https://files.pythonhosted.org/packages/25/27/5057b10b1729f686af41edd45fc434d96faf25d925aec43bb9b3f27a559a/flake8_no_implicit_concat-0.3.7.tar.gz" } ], "project_name": "flake8-no-implicit-concat", @@ -125,11 +126,10 @@ "isort; extra == \"dev\"", "more-itertools; python_version < \"3.10\"", "mypy; extra == \"dev\"", - "pep8-naming; extra == \"dev\"", - "typing; python_version < \"3.5\"" + "pep8-naming; extra == \"dev\"" ], - "requires_python": ">=3.5", - "version": "0.3.5" + "requires_python": ">=3.6", + "version": "0.3.7" }, { "artifacts": [ @@ -193,8 +193,8 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.19.1", - "pip_version": "24.2", + "pex_version": "2.25.2", + "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ "flake8-2020<2,>=1.7.0", @@ -212,5 +212,6 @@ "mac" ], "transitive": true, - "use_pep517": null + "use_pep517": null, + "use_system_time": false } diff --git a/3rdparty/python/mypy.lock b/3rdparty/python/mypy.lock index 0903c9bcef1..2c75e9706e8 100644 --- a/3rdparty/python/mypy.lock +++ b/3rdparty/python/mypy.lock @@ -26,6 +26,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -157,19 +158,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", - "url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl" + "hash": "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", + "url": "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "url": "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz" + "hash": "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", + "url": "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz" } ], "project_name": "six", "requires_dists": [], "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7", - "version": "1.16.0" + "version": "1.17.0" }, { "artifacts": [ @@ -242,8 +243,8 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.20.3", - "pip_version": "24.2", + "pex_version": "2.25.2", + "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ "mypy-typing-asserts", diff --git a/3rdparty/python/pbs-script-requirements.lock b/3rdparty/python/pbs-script-requirements.lock index f1393f11559..59566e075fb 100644 --- a/3rdparty/python/pbs-script-requirements.lock +++ b/3rdparty/python/pbs-script-requirements.lock @@ -26,6 +26,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -200,106 +201,117 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", - "url": "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + "hash": "a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285", + "url": "https://files.pythonhosted.org/packages/af/36/5ccc376f025a834e72b8e52e18746b927f34e4520487098e283a719c205e/cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd", - "url": "https://files.pythonhosted.org/packages/01/f5/69ae8da70c19864a32b0315049866c4d411cce423ec169993d0434218762/cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl" + "hash": "660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591", + "url": "https://files.pythonhosted.org/packages/11/18/61e52a3d28fc1514a43b0ac291177acd1b4de00e9301aaf7ef867076ff8a/cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f", - "url": "https://files.pythonhosted.org/packages/0a/be/f9a1f673f0ed4b7f6c643164e513dbad28dd4f2dcdf5715004f172ef24b6/cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7", + "url": "https://files.pythonhosted.org/packages/1a/07/5f165b6c65696ef75601b781a280fc3b33f1e0cd6aa5a92d9fb96c410e97/cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", - "url": "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + "hash": "404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc", + "url": "https://files.pythonhosted.org/packages/28/34/6b3ac1d80fc174812486561cf25194338151780f27e438526f9c64e16869/cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18", - "url": "https://files.pythonhosted.org/packages/0e/16/a28ddf78ac6e7e3f25ebcef69ab15c2c6be5ff9743dd0709a69a4f968472/cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl" + "hash": "84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123", + "url": "https://files.pythonhosted.org/packages/55/09/8cc67f9b84730ad330b3b72cf867150744bf07ff113cda21a15a1c6d2c7c/cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e", - "url": "https://files.pythonhosted.org/packages/1f/f3/01fdf26701a26f4b4dbc337a26883ad5bccaa6f1bbbdd29cd89e22f18a1c/cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl" + "hash": "831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f", + "url": "https://files.pythonhosted.org/packages/5f/58/3b14bf39f1a0cfd679e753e8647ada56cddbf5acebffe7db90e184c76168/cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", - "url": "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + "hash": "4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543", + "url": "https://files.pythonhosted.org/packages/75/ea/af65619c800ec0a7e4034207aec543acdf248d9bffba0533342d1bd435e1/cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl" }, { "algorithm": "sha256", - "hash": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", - "url": "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092", + "url": "https://files.pythonhosted.org/packages/7e/5b/3759e30a103144e29632e7cb72aec28cedc79e514b2ea8896bb17163c19b/cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", - "url": "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64", + "url": "https://files.pythonhosted.org/packages/7f/df/8be88797f0a1cca6e255189a57bb49237402b1880d6e8721690c5603ac23/cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984", - "url": "https://files.pythonhosted.org/packages/30/d5/c8b32c047e2e81dd172138f772e81d852c51f0f2ad2ae8a24f1122e9e9a7/cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl" + "hash": "cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02", + "url": "https://files.pythonhosted.org/packages/91/4c/45dfa6829acffa344e3967d6006ee4ae8be57af746ae2eba1c431949b32c/cryptography-44.0.0.tar.gz" }, { "algorithm": "sha256", - "hash": "443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6", - "url": "https://files.pythonhosted.org/packages/4e/49/80c3a7b5514d1b416d7350830e8c422a4d667b6d9b16a9392ebfd4a5388a/cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl" + "hash": "761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb", + "url": "https://files.pythonhosted.org/packages/98/65/13d9e76ca19b0ba5603d71ac8424b5694415b348e719db277b5edc985ff5/cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", - "url": "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + "hash": "9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c", + "url": "https://files.pythonhosted.org/packages/a2/cd/2f3c440913d4329ade49b146d74f2e9766422e1732613f57097fea61f344/cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl" }, { "algorithm": "sha256", - "hash": "63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e", - "url": "https://files.pythonhosted.org/packages/a3/01/4896f3d1b392025d4fcbecf40fdea92d3df8662123f6835d0af828d148fd/cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b", + "url": "https://files.pythonhosted.org/packages/b1/07/40fe09ce96b91fc9276a9ad272832ead0fddedcba87f1190372af8e3039c/cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", - "url": "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + "hash": "f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e", + "url": "https://files.pythonhosted.org/packages/bd/69/7ca326c55698d0688db867795134bdfac87136b80ef373aaa42b225d6dd5/cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73", - "url": "https://files.pythonhosted.org/packages/fd/db/e74911d95c040f9afd3612b1f732e52b3e517cb80de8bf183be0b7d413c6/cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl" + "hash": "ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e", + "url": "https://files.pythonhosted.org/packages/c7/af/d1deb0c04d59612e3d5e54203159e284d3e7a6921e565bb0eeb6269bdd8a/cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289", + "url": "https://files.pythonhosted.org/packages/d0/c7/c656eb08fd22255d21bc3129625ed9cd5ee305f33752ef2278711b3fa98b/cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7", + "url": "https://files.pythonhosted.org/packages/ef/82/72403624f197af0db6bac4e58153bc9ac0e6020e57234115db9596eee85d/cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl" } ], "project_name": "cryptography", "requires_dists": [ "bcrypt>=3.1.5; extra == \"ssh\"", - "build; extra == \"sdist\"", - "certifi; extra == \"test\"", + "build>=1.0.0; extra == \"sdist\"", + "certifi>=2024; extra == \"test\"", "cffi>=1.12; platform_python_implementation != \"PyPy\"", - "check-sdist; extra == \"pep8test\"", - "click; extra == \"pep8test\"", - "cryptography-vectors==43.0.3; extra == \"test\"", - "mypy; extra == \"pep8test\"", - "nox; extra == \"nox\"", - "pretend; extra == \"test\"", - "pyenchant>=1.6.11; extra == \"docstest\"", - "pytest-benchmark; extra == \"test\"", - "pytest-cov; extra == \"test\"", + "check-sdist; python_version >= \"3.8\" and extra == \"pep8test\"", + "click>=8.0.1; extra == \"pep8test\"", + "cryptography-vectors==44.0.0; extra == \"test\"", + "mypy>=1.4; extra == \"pep8test\"", + "nox>=2024.4.15; extra == \"nox\"", + "nox[uv]>=2024.3.2; python_version >= \"3.8\" and extra == \"nox\"", + "pretend>=0.7; extra == \"test\"", + "pyenchant>=3; extra == \"docstest\"", + "pytest-benchmark>=4.0; extra == \"test\"", + "pytest-cov>=2.10.1; extra == \"test\"", "pytest-randomly; extra == \"test-randomorder\"", - "pytest-xdist; extra == \"test\"", - "pytest>=6.2.0; extra == \"test\"", - "readme-renderer; extra == \"docstest\"", - "ruff; extra == \"pep8test\"", - "sphinx-rtd-theme>=1.1.1; extra == \"docs\"", + "pytest-xdist>=3.5.0; extra == \"test\"", + "pytest>=7.4.0; extra == \"test\"", + "readme-renderer>=30.0; extra == \"docstest\"", + "ruff>=0.3.6; extra == \"pep8test\"", + "sphinx-rtd-theme>=3.0.0; python_version >= \"3.8\" and extra == \"docs\"", "sphinx>=5.3.0; extra == \"docs\"", - "sphinxcontrib-spelling>=4.0.1; extra == \"docstest\"" + "sphinxcontrib-spelling>=7.3.1; extra == \"docstest\"" ], - "requires_python": ">=3.7", - "version": "43.0.3" + "requires_python": "!=3.9.0,!=3.9.1,>=3.7", + "version": "44.0.0" }, { "artifacts": [ @@ -398,13 +410,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "543b77207db656de204372350926bed5a86201c4cbff159f623f79c7bb487a15", - "url": "https://files.pythonhosted.org/packages/6f/1d/ef9b066e7ef60494c94173dc9f0b9adf5d9ec5f888109f5c669f53d4144b/PyJWT-2.10.0-py3-none-any.whl" + "hash": "dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", + "url": "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "7628a7eb7938959ac1b26e819a1df0fd3259505627b575e4bad6d08f76db695c", - "url": "https://files.pythonhosted.org/packages/b5/05/324952ded002de746f87b21066b9373080bb5058f64cf01c4d62784b8186/pyjwt-2.10.0.tar.gz" + "hash": "3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", + "url": "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz" } ], "project_name": "pyjwt", @@ -424,7 +436,7 @@ "zope.interface; extra == \"docs\"" ], "requires_python": ">=3.9", - "version": "2.10.0" + "version": "2.10.1" }, { "artifacts": [ @@ -589,59 +601,54 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1", - "url": "https://files.pythonhosted.org/packages/ff/21/abdedb4cdf6ff41ebf01a74087740a709e2edb146490e4d9beea054b0b7a/wrapt-1.16.0-py3-none-any.whl" + "hash": "d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371", + "url": "https://files.pythonhosted.org/packages/4b/d9/a8ba5e9507a9af1917285d118388c5eb7a81834873f45df213a6fe923774/wrapt-1.17.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d", - "url": "https://files.pythonhosted.org/packages/0f/16/ea627d7817394db04518f62934a5de59874b587b792300991b3c347ff5e0/wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a", + "url": "https://files.pythonhosted.org/packages/0e/40/def56538acddc2f764c157d565b9f989072a1d2f2a8e384324e2e104fc7d/wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956", - "url": "https://files.pythonhosted.org/packages/0f/ef/0ecb1fa23145560431b970418dce575cfaec555ab08617d82eb92afc7ccf/wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801", + "url": "https://files.pythonhosted.org/packages/24/a1/fc03dca9b0432725c2e8cdbf91a349d2194cf03d8523c124faebe581de09/wrapt-1.17.0.tar.gz" }, { "algorithm": "sha256", - "hash": "d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3", - "url": "https://files.pythonhosted.org/packages/11/fb/18ec40265ab81c0e82a934de04596b6ce972c27ba2592c8b53d5585e6bcd/wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489", + "url": "https://files.pythonhosted.org/packages/29/ef/fcdb776b12df5ea7180d065b28fa6bb27ac785dddcd7202a0b6962bbdb47/wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d", - "url": "https://files.pythonhosted.org/packages/25/62/cd284b2b747f175b5a96cbd8092b32e7369edab0644c45784871528eb852/wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d", + "url": "https://files.pythonhosted.org/packages/42/92/c48ba92cda6f74cb914dc3c5bba9650dc80b790e121c4b987f3a46b028f5/wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1", - "url": "https://files.pythonhosted.org/packages/6e/52/2da48b35193e39ac53cfb141467d9f259851522d0e8c87153f0ba4205fb1/wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9", + "url": "https://files.pythonhosted.org/packages/55/b5/698bd0bf9fbb3ddb3a2feefbb7ad0dea1205f5d7d05b9cbab54f5db731aa/wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389", - "url": "https://files.pythonhosted.org/packages/7f/a7/f1212ba098f3de0fd244e2de0f8791ad2539c03bef6c05a9fcb03e45b089/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed", + "url": "https://files.pythonhosted.org/packages/89/e2/8c299f384ae4364193724e2adad99f9504599d02a73ec9199bf3f406549d/wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d", - "url": "https://files.pythonhosted.org/packages/95/4c/063a912e20bcef7124e0df97282a8af3ff3e4b603ce84c481d6d7346be0a/wrapt-1.16.0.tar.gz" + "hash": "bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b", + "url": "https://files.pythonhosted.org/packages/8a/0a/9276d3269334138b88a2947efaaf6335f61d547698e50dff672ade24f2c6/wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060", - "url": "https://files.pythonhosted.org/packages/b7/96/bb5e08b3d6db003c9ab219c487714c13a237ee7dcc572a555eaf1ce7dc82/wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" - }, - { - "algorithm": "sha256", - "hash": "1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09", - "url": "https://files.pythonhosted.org/packages/fd/03/c188ac517f402775b90d6f312955a5e53b866c964b32119f2ed76315697e/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339", + "url": "https://files.pythonhosted.org/packages/ce/07/701a5cee28cb4d5df030d4b2649319e36f3d9fdd8000ef1d84eb06b9860d/wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl" } ], "project_name": "wrapt", "requires_dists": [], - "requires_python": ">=3.6", - "version": "1.16.0" + "requires_python": ">=3.8", + "version": "1.17.0" } ], "platform_tag": null @@ -651,8 +658,8 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.20.3", - "pip_version": "24.2", + "pex_version": "2.25.2", + "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ "PyGithub>=2.5.0", diff --git a/3rdparty/python/pytest.lock b/3rdparty/python/pytest.lock index 9e9532ada19..9302f527bd4 100644 --- a/3rdparty/python/pytest.lock +++ b/3rdparty/python/pytest.lock @@ -31,6 +31,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -39,27 +40,25 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", - "url": "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl" + "hash": "e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", + "url": "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", - "url": "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz" + "hash": "0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", + "url": "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz" } ], "project_name": "asttokens", "requires_dists": [ - "astroid<2,>=1; python_version < \"3\" and extra == \"astroid\"", - "astroid<2,>=1; python_version < \"3\" and extra == \"test\"", - "astroid<4,>=2; python_version >= \"3\" and extra == \"astroid\"", - "astroid<4,>=2; python_version >= \"3\" and extra == \"test\"", - "pytest; extra == \"test\"", - "six>=1.12.0", - "typing; python_version < \"3.5\"" + "astroid<4,>=2; extra == \"astroid\"", + "astroid<4,>=2; extra == \"test\"", + "pytest-cov; extra == \"test\"", + "pytest-xdist; extra == \"test\"", + "pytest; extra == \"test\"" ], - "requires_python": null, - "version": "2.4.1" + "requires_python": ">=3.8", + "version": "3.0.0" }, { "artifacts": [ @@ -125,53 +124,53 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b9853509b4bf57ba7b1f99b9d866c422c9c5248799ab20e652bbb8a184a38181", - "url": "https://files.pythonhosted.org/packages/29/f7/80e7a36288785bf0a44f6fa2a778dae85d34d8761f4c0996066f3756bdf5/coverage-7.6.3-pp39.pp310-none-any.whl" + "hash": "f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b", + "url": "https://files.pythonhosted.org/packages/15/0e/4ac9035ee2ee08d2b703fdad2d84283ec0bad3b46eb4ad6affb150174cb6/coverage-7.6.9-pp39.pp310-none-any.whl" }, { "algorithm": "sha256", - "hash": "0c6c0f4d53ef603397fc894a895b960ecd7d44c727df42a8d500031716d4e8d2", - "url": "https://files.pythonhosted.org/packages/09/ec/c3c4dd9cdcd97f127141dfa348c737912d32130e6129e61645736106c341/coverage-7.6.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c", + "url": "https://files.pythonhosted.org/packages/0d/2b/53fd6cb34d443429a92b3ec737f4953627e38b3bee2a67a3c03425ba8573/coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "43b32a06c47539fe275106b376658638b418c7cfdfff0e0259fbf877e845f14b", - "url": "https://files.pythonhosted.org/packages/0d/ef/8650eea57f9a602ef7ddaa846f1aa760704cb6032c23d10b051b304ed4a3/coverage-7.6.3-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3", + "url": "https://files.pythonhosted.org/packages/33/6d/31f6ab0b4f0f781636075f757eb02141ea1b34466d9d1526dbc586ed7078/coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c51ef82302386d686feea1c44dbeef744585da16fcf97deea2a8d6c1556f519b", - "url": "https://files.pythonhosted.org/packages/0f/77/8e5c0c6027ce0d06d0cb9569d372fb94247b5a49a7ef8bba288956696dcb/coverage-7.6.3-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b", + "url": "https://files.pythonhosted.org/packages/58/2f/9d2203f012f3b0533c73336c74134b608742be1ce475a5c72012573cfbb4/coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "bb7d5fe92bd0dc235f63ebe9f8c6e0884f7360f88f3411bfed1350c872ef2054", - "url": "https://files.pythonhosted.org/packages/12/50/51ec496dd2ad84ca3e5f67de23f6de630be923dd6f5aed31bb60eda540e5/coverage-7.6.3.tar.gz" + "hash": "4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d", + "url": "https://files.pythonhosted.org/packages/5b/d2/c25011f4d036cf7e8acbbee07a8e09e9018390aee25ba085596c4b83d510/coverage-7.6.9.tar.gz" }, { "algorithm": "sha256", - "hash": "6e484e479860e00da1f005cd19d1c5d4a813324e5951319ac3f3eefb497cc549", - "url": "https://files.pythonhosted.org/packages/1e/00/ada23862b99bf25218a74a116011982e20d1d4740fe4ad009c08f1090a5b/coverage-7.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1", + "url": "https://files.pythonhosted.org/packages/6f/62/4ac2e5ad9e7a5c9ec351f38947528e11541f1f00e8a0cdce56f1ba7ae301/coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "ee77c7bef0724165e795b6b7bf9c4c22a9b8468a6bdb9c6b4281293c6b22a90f", - "url": "https://files.pythonhosted.org/packages/76/f5/9e5b4cda520e07ff0e2bb61f6176cd9bf1a2a77c2f89caf8005ae9eba1d3/coverage-7.6.3-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7", + "url": "https://files.pythonhosted.org/packages/74/f2/68edb1e6826f980a124f21ea5be0d324180bf11de6fd1defcf9604f76df0/coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "c77326300b839c44c3e5a8fe26c15b7e87b2f32dfd2fc9fee1d13604347c9b38", - "url": "https://files.pythonhosted.org/packages/78/4c/2705183ff384b1612170b70fb716dcd24941f9c71b02860f6bbdf7f2f780/coverage-7.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4", + "url": "https://files.pythonhosted.org/packages/8b/20/8f50e7c7ad271144afbc2c1c6ec5541a8c81773f59352f8db544cad1a0ec/coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "0ca37993206402c6c35dc717f90d4c8f53568a8b80f0bf1a1b2b334f4d488fba", - "url": "https://files.pythonhosted.org/packages/af/ca/0fe701e0bf0ba3062466ceeccb9857caa492886375bbf6eabeab118a4dd0/coverage-7.6.3-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9", + "url": "https://files.pythonhosted.org/packages/b1/91/b3dc2f7f38b5cca1236ab6bbb03e84046dd887707b4ec1db2baa47493b3b/coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "37be7b5ea3ff5b7c4a9db16074dc94523b5f10dd1f3b362a827af66a55198175", - "url": "https://files.pythonhosted.org/packages/f4/c3/5f4e50d1ecb0cfab9f8b988df65d2ae800299bc0e4bda8f508e06717fa49/coverage-7.6.3-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9", + "url": "https://files.pythonhosted.org/packages/d3/83/8fec0ee68c2c4a5ab5f0f8527277f84ed6f2bd1310ae8a19d0c5532253ab/coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" } ], "project_name": "coverage", @@ -179,7 +178,7 @@ "tomli; python_full_version <= \"3.11.0a6\" and extra == \"toml\"" ], "requires_python": ">=3.9", - "version": "7.6.3" + "version": "7.6.9" }, { "artifacts": [ @@ -325,13 +324,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "530ef1e7bb693724d3cdc37287c80b07ad9b25986c007a53aa1857272dac3f35", - "url": "https://files.pythonhosted.org/packages/f4/3a/5d8680279ada9571de8469220069d27024ee47624af534e537c9ff49a450/ipython-8.28.0-py3-none-any.whl" + "hash": "85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321", + "url": "https://files.pythonhosted.org/packages/1d/f3/1332ba2f682b07b304ad34cad2f003adcfeb349486103f4b632335074a7c/ipython-8.30.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "0d0d15ca1e01faeb868ef56bc7ee5a0de5bd66885735682e8a322ae289a13d1a", - "url": "https://files.pythonhosted.org/packages/f7/21/48db7d9dd622b9692575004c7c98f85f5629428f58596c59606d36c51b58/ipython-8.28.0.tar.gz" + "hash": "cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e", + "url": "https://files.pythonhosted.org/packages/d8/8b/710af065ab8ed05649afa5bd1e07401637c9ec9fb7cfda9eac7e91e9fbd4/ipython-8.30.0.tar.gz" } ], "project_name": "ipython", @@ -343,7 +342,7 @@ "docrepr; extra == \"doc\"", "exceptiongroup; extra == \"doc\"", "exceptiongroup; python_version < \"3.11\"", - "intersphinx-registry; extra == \"doc\"", + "intersphinx_registry; extra == \"doc\"", "ipykernel; extra == \"doc\"", "ipykernel; extra == \"kernel\"", "ipyparallel; extra == \"parallel\"", @@ -366,7 +365,7 @@ "pandas; extra == \"test-extra\"", "pexpect>4.3; sys_platform != \"win32\" and sys_platform != \"emscripten\"", "pickleshare; extra == \"test\"", - "prompt-toolkit<3.1.0,>=3.0.41", + "prompt_toolkit<3.1.0,>=3.0.41", "pygments>=2.4.0", "pytest-asyncio<0.22; extra == \"test\"", "pytest; extra == \"test\"", @@ -375,28 +374,28 @@ "sphinx-rtd-theme; extra == \"doc\"", "sphinx>=1.3; extra == \"doc\"", "sphinxcontrib-jquery; extra == \"doc\"", - "stack-data", + "stack_data", "testpath; extra == \"test\"", "tomli; python_version < \"3.11\" and extra == \"doc\"", "traitlets>=5.13.0", "trio; extra == \"test-extra\"", - "typing-extensions; extra == \"doc\"", - "typing-extensions>=4.6; python_version < \"3.12\"" + "typing_extensions; extra == \"doc\"", + "typing_extensions>=4.6; python_version < \"3.12\"" ], "requires_python": ">=3.10", - "version": "8.28.0" + "version": "8.30.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0", - "url": "https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl" + "hash": "a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", + "url": "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", - "url": "https://files.pythonhosted.org/packages/d6/99/99b493cec4bf43176b678de30f81ed003fd6a647a301b9c927280c600f0a/jedi-0.19.1.tar.gz" + "hash": "4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", + "url": "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz" } ], "project_name": "jedi", @@ -420,9 +419,9 @@ "mock==1.0.1; extra == \"docs\"", "mypy==0.971; extra == \"qa\"", "packaging==20.9; extra == \"docs\"", - "parso<0.9.0,>=0.8.3", + "parso<0.9.0,>=0.8.4", "pyparsing==2.4.7; extra == \"docs\"", - "pytest<7.0.0; extra == \"testing\"", + "pytest<9.0.0; extra == \"testing\"", "pytz==2021.1; extra == \"docs\"", "readthedocs-sphinx-ext==2.1.4; extra == \"docs\"", "recommonmark==0.5.0; extra == \"docs\"", @@ -437,7 +436,7 @@ "urllib3==1.26.4; extra == \"docs\"" ], "requires_python": ">=3.6", - "version": "0.19.1" + "version": "0.19.2" }, { "artifacts": [ @@ -464,54 +463,54 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "a4792d3b3a6dfafefdf8e937f14906a51bd27025a36f4b188728a73382231d91", - "url": "https://files.pythonhosted.org/packages/d4/0b/998b17b9e06ea45ad1646fea586f1b83d02dfdb14d47dd2fd81fba5a08c9/MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", + "url": "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "d98e66a24497637dd31ccab090b34392dddb1f2f811c4b4cd80c230205c074a3", - "url": "https://files.pythonhosted.org/packages/26/ce/703ca3b03a709e3bd1fbffa407789e56b9fa664456538092617dd665fc1d/MarkupSafe-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", + "url": "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "973a371a55ce9ed333a3a0f8e0bcfae9e0d637711534bcb11e130af2ab9334e7", - "url": "https://files.pythonhosted.org/packages/58/26/78f161d602fb03804118905e5faacafc0ec592bbad71aaee62537529813a/MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", + "url": "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "7044312a928a66a4c2a22644147bc61a199c1709712069a344a3fb5cfcf16915", - "url": "https://files.pythonhosted.org/packages/6d/f8/8fd52a66e8f62a9add62b4a0b5a3ab4092027437f2ef027f812d94ae91cf/MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", + "url": "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "ad91738f14eb8da0ff82f2acd0098b6257621410dcbd4df20aaa5b4233d75a50", - "url": "https://files.pythonhosted.org/packages/88/60/40be0493decabc2344b12d3a709fd6ccdd15a5ebaee1e8d878315d107ad3/MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", + "url": "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "b954093679d5750495725ea6f88409946d69cfb25ea7b4c846eef5044194f583", - "url": "https://files.pythonhosted.org/packages/8d/43/fd588ef5d192308c5e05974bac659bf6ae29c202b7ea2c4194bcf01eacee/MarkupSafe-3.0.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", + "url": "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz" }, { "algorithm": "sha256", - "hash": "244dbe463d5fb6d7ce161301a03a6fe744dac9072328ba9fc82289238582697b", - "url": "https://files.pythonhosted.org/packages/ae/1d/7d5ec8bcfd9c2db235d720fa51d818b7e2abc45250ce5f53dd6cb60409ca/MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", + "url": "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3e683ee4f5d0fa2dde4db77ed8dd8a876686e3fc417655c2ece9a90576905344", - "url": "https://files.pythonhosted.org/packages/b4/d2/38ff920762f2247c3af5cbbbbc40756f575d9692d381d7c520f45deb9b8f/markupsafe-3.0.1.tar.gz" + "hash": "2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", + "url": "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "26627785a54a947f6d7336ce5963569b5d75614619e75193bdb4e06e21d447ad", - "url": "https://files.pythonhosted.org/packages/ce/af/2f5d88a7fc7226bd34c6e15f6061246ad8cff979da9f19d11bdd0addd8e2/MarkupSafe-3.0.1-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", + "url": "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl" } ], "project_name": "markupsafe", "requires_dists": [], "requires_python": ">=3.9", - "version": "3.0.1" + "version": "3.0.2" }, { "artifacts": [ @@ -537,19 +536,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", - "url": "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl" + "hash": "09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", + "url": "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", - "url": "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz" + "hash": "c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", + "url": "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz" } ], "project_name": "packaging", "requires_dists": [], "requires_python": ">=3.8", - "version": "24.1" + "version": "24.2" }, { "artifacts": [ @@ -943,24 +942,6 @@ "requires_python": ">=3.6", "version": "2.5.0" }, - { - "artifacts": [ - { - "algorithm": "sha256", - "hash": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", - "url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl" - }, - { - "algorithm": "sha256", - "hash": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "url": "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz" - } - ], - "project_name": "six", - "requires_dists": [], - "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7", - "version": "1.16.0" - }, { "artifacts": [ { @@ -992,19 +973,59 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38", - "url": "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl" + "hash": "cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", + "url": "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", + "url": "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", + "url": "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", + "url": "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", + "url": "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", + "url": "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", + "url": "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", + "url": "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", + "url": "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed", - "url": "https://files.pythonhosted.org/packages/35/b9/de2a5c0144d7d75a57ff355c0c24054f965b2dc3036456ae03a51ea6264b/tomli-2.0.2.tar.gz" + "hash": "ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", + "url": "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" } ], "project_name": "tomli", "requires_dists": [], "requires_python": ">=3.8", - "version": "2.0.2" + "version": "2.2.1" }, { "artifacts": [ @@ -1080,8 +1101,8 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.19.1", - "pip_version": "24.2", + "pex_version": "2.25.2", + "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ "ipdb", @@ -1103,5 +1124,6 @@ "mac" ], "transitive": true, - "use_pep517": null + "use_pep517": null, + "use_system_time": false } diff --git a/3rdparty/python/user_reqs.lock b/3rdparty/python/user_reqs.lock index 34a30b4eb33..7713ee36f37 100644 --- a/3rdparty/python/user_reqs.lock +++ b/3rdparty/python/user_reqs.lock @@ -57,6 +57,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -451,106 +452,117 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", - "url": "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + "hash": "a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285", + "url": "https://files.pythonhosted.org/packages/af/36/5ccc376f025a834e72b8e52e18746b927f34e4520487098e283a719c205e/cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd", - "url": "https://files.pythonhosted.org/packages/01/f5/69ae8da70c19864a32b0315049866c4d411cce423ec169993d0434218762/cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl" + "hash": "660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591", + "url": "https://files.pythonhosted.org/packages/11/18/61e52a3d28fc1514a43b0ac291177acd1b4de00e9301aaf7ef867076ff8a/cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f", - "url": "https://files.pythonhosted.org/packages/0a/be/f9a1f673f0ed4b7f6c643164e513dbad28dd4f2dcdf5715004f172ef24b6/cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7", + "url": "https://files.pythonhosted.org/packages/1a/07/5f165b6c65696ef75601b781a280fc3b33f1e0cd6aa5a92d9fb96c410e97/cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", - "url": "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + "hash": "404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc", + "url": "https://files.pythonhosted.org/packages/28/34/6b3ac1d80fc174812486561cf25194338151780f27e438526f9c64e16869/cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18", - "url": "https://files.pythonhosted.org/packages/0e/16/a28ddf78ac6e7e3f25ebcef69ab15c2c6be5ff9743dd0709a69a4f968472/cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl" + "hash": "84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123", + "url": "https://files.pythonhosted.org/packages/55/09/8cc67f9b84730ad330b3b72cf867150744bf07ff113cda21a15a1c6d2c7c/cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e", - "url": "https://files.pythonhosted.org/packages/1f/f3/01fdf26701a26f4b4dbc337a26883ad5bccaa6f1bbbdd29cd89e22f18a1c/cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl" + "hash": "831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f", + "url": "https://files.pythonhosted.org/packages/5f/58/3b14bf39f1a0cfd679e753e8647ada56cddbf5acebffe7db90e184c76168/cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", - "url": "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + "hash": "4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543", + "url": "https://files.pythonhosted.org/packages/75/ea/af65619c800ec0a7e4034207aec543acdf248d9bffba0533342d1bd435e1/cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl" }, { "algorithm": "sha256", - "hash": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", - "url": "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092", + "url": "https://files.pythonhosted.org/packages/7e/5b/3759e30a103144e29632e7cb72aec28cedc79e514b2ea8896bb17163c19b/cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", - "url": "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64", + "url": "https://files.pythonhosted.org/packages/7f/df/8be88797f0a1cca6e255189a57bb49237402b1880d6e8721690c5603ac23/cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984", - "url": "https://files.pythonhosted.org/packages/30/d5/c8b32c047e2e81dd172138f772e81d852c51f0f2ad2ae8a24f1122e9e9a7/cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl" + "hash": "cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02", + "url": "https://files.pythonhosted.org/packages/91/4c/45dfa6829acffa344e3967d6006ee4ae8be57af746ae2eba1c431949b32c/cryptography-44.0.0.tar.gz" }, { "algorithm": "sha256", - "hash": "443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6", - "url": "https://files.pythonhosted.org/packages/4e/49/80c3a7b5514d1b416d7350830e8c422a4d667b6d9b16a9392ebfd4a5388a/cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl" + "hash": "761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb", + "url": "https://files.pythonhosted.org/packages/98/65/13d9e76ca19b0ba5603d71ac8424b5694415b348e719db277b5edc985ff5/cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", - "url": "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + "hash": "9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c", + "url": "https://files.pythonhosted.org/packages/a2/cd/2f3c440913d4329ade49b146d74f2e9766422e1732613f57097fea61f344/cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl" }, { "algorithm": "sha256", - "hash": "63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e", - "url": "https://files.pythonhosted.org/packages/a3/01/4896f3d1b392025d4fcbecf40fdea92d3df8662123f6835d0af828d148fd/cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b", + "url": "https://files.pythonhosted.org/packages/b1/07/40fe09ce96b91fc9276a9ad272832ead0fddedcba87f1190372af8e3039c/cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", - "url": "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + "hash": "f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e", + "url": "https://files.pythonhosted.org/packages/bd/69/7ca326c55698d0688db867795134bdfac87136b80ef373aaa42b225d6dd5/cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73", - "url": "https://files.pythonhosted.org/packages/fd/db/e74911d95c040f9afd3612b1f732e52b3e517cb80de8bf183be0b7d413c6/cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl" + "hash": "ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e", + "url": "https://files.pythonhosted.org/packages/c7/af/d1deb0c04d59612e3d5e54203159e284d3e7a6921e565bb0eeb6269bdd8a/cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289", + "url": "https://files.pythonhosted.org/packages/d0/c7/c656eb08fd22255d21bc3129625ed9cd5ee305f33752ef2278711b3fa98b/cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7", + "url": "https://files.pythonhosted.org/packages/ef/82/72403624f197af0db6bac4e58153bc9ac0e6020e57234115db9596eee85d/cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl" } ], "project_name": "cryptography", "requires_dists": [ "bcrypt>=3.1.5; extra == \"ssh\"", - "build; extra == \"sdist\"", - "certifi; extra == \"test\"", + "build>=1.0.0; extra == \"sdist\"", + "certifi>=2024; extra == \"test\"", "cffi>=1.12; platform_python_implementation != \"PyPy\"", - "check-sdist; extra == \"pep8test\"", - "click; extra == \"pep8test\"", - "cryptography-vectors==43.0.3; extra == \"test\"", - "mypy; extra == \"pep8test\"", - "nox; extra == \"nox\"", - "pretend; extra == \"test\"", - "pyenchant>=1.6.11; extra == \"docstest\"", - "pytest-benchmark; extra == \"test\"", - "pytest-cov; extra == \"test\"", + "check-sdist; python_version >= \"3.8\" and extra == \"pep8test\"", + "click>=8.0.1; extra == \"pep8test\"", + "cryptography-vectors==44.0.0; extra == \"test\"", + "mypy>=1.4; extra == \"pep8test\"", + "nox>=2024.4.15; extra == \"nox\"", + "nox[uv]>=2024.3.2; python_version >= \"3.8\" and extra == \"nox\"", + "pretend>=0.7; extra == \"test\"", + "pyenchant>=3; extra == \"docstest\"", + "pytest-benchmark>=4.0; extra == \"test\"", + "pytest-cov>=2.10.1; extra == \"test\"", "pytest-randomly; extra == \"test-randomorder\"", - "pytest-xdist; extra == \"test\"", - "pytest>=6.2.0; extra == \"test\"", - "readme-renderer; extra == \"docstest\"", - "ruff; extra == \"pep8test\"", - "sphinx-rtd-theme>=1.1.1; extra == \"docs\"", + "pytest-xdist>=3.5.0; extra == \"test\"", + "pytest>=7.4.0; extra == \"test\"", + "readme-renderer>=30.0; extra == \"docstest\"", + "ruff>=0.3.6; extra == \"pep8test\"", + "sphinx-rtd-theme>=3.0.0; python_version >= \"3.8\" and extra == \"docs\"", "sphinx>=5.3.0; extra == \"docs\"", - "sphinxcontrib-spelling>=4.0.1; extra == \"docstest\"" + "sphinxcontrib-spelling>=7.3.1; extra == \"docstest\"" ], - "requires_python": ">=3.7", - "version": "43.0.3" + "requires_python": "!=3.9.0,!=3.9.1,>=3.7", + "version": "44.0.0" }, { "artifacts": [ @@ -574,13 +586,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", - "url": "https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl" + "hash": "353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320", + "url": "https://files.pythonhosted.org/packages/1d/8f/c7f227eb42cfeaddce3eb0c96c60cbca37797fa7b34f8e1aeadf6c5c0983/Deprecated-1.2.15-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3", - "url": "https://files.pythonhosted.org/packages/92/14/1e41f504a246fc224d2ac264c227975427a85caf37c3979979edb9b1b232/Deprecated-1.2.14.tar.gz" + "hash": "683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d", + "url": "https://files.pythonhosted.org/packages/2e/a3/53e7d78a6850ffdd394d7048a31a6f14e44900adedf190f9a165f6b69439/deprecated-1.2.15.tar.gz" } ], "project_name": "deprecated", @@ -588,12 +600,14 @@ "PyTest-Cov; extra == \"dev\"", "PyTest; extra == \"dev\"", "bump2version<1; extra == \"dev\"", + "jinja2~=3.0.3; extra == \"dev\"", + "setuptools; python_version >= \"3.12\" and extra == \"dev\"", "sphinx<2; extra == \"dev\"", "tox; extra == \"dev\"", "wrapt<2,>=1.10" ], "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7", - "version": "1.2.14" + "version": "1.2.15" }, { "artifacts": [ @@ -1123,43 +1137,43 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "06a189b81ffc52746ec9c8c007f16e5167c8b0a696e1a726369327e3db7b2a82", - "url": "https://files.pythonhosted.org/packages/67/a4/0048b8c96b97147de57f102034dd20a35178ff70cb28707e1fb17570c1bc/pydantic-1.10.18-py3-none-any.whl" + "hash": "2206a1752d9fac011e95ca83926a269fb0ef5536f7e053966d058316e24d929f", + "url": "https://files.pythonhosted.org/packages/a4/68/99ebf43b6b0321175cff0a05f0ce7fa51a8de67d390ccb8ab0d534be86a9/pydantic-1.10.19-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "ef0fe7ad7cbdb5f372463d42e6ed4ca9c443a52ce544472d8842a0576d830da5", - "url": "https://files.pythonhosted.org/packages/1b/f4/0cf037f5c03c4d8aa18439d0146e11c2cfcca936388993a6868c803f3db1/pydantic-1.10.18-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "e351df83d1c9cffa53d4e779009a093be70f1d5c6bb7068584086f6a19042526", + "url": "https://files.pythonhosted.org/packages/43/09/c7eb4c39faf7f01ebaed3fae8bf0b31388f2f7ffcefb07b2e5b9ea0f0617/pydantic-1.10.19-cp311-cp311-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "baebdff1907d1d96a139c25136a9bb7d17e118f133a76a2ef3b845e831e3403a", - "url": "https://files.pythonhosted.org/packages/20/e6/89d6ba0c0a981fd7e3129d105502c4cf73fad1611b294c87b103f75b5837/pydantic-1.10.18.tar.gz" + "hash": "07d00ca5ef0de65dd274005433ce2bb623730271d495a7d190a91c19c5679d34", + "url": "https://files.pythonhosted.org/packages/79/4c/fea1176272425a1b972db48b5b2582165095f22d88d4a249f02439dcd3e5/pydantic-1.10.19-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "ae6fa2008e1443c46b7b3a5eb03800121868d5ab6bc7cda20b5df3e133cde8b3", - "url": "https://files.pythonhosted.org/packages/32/d7/62134d1662af1af476b1103aea8b3ab928ff737624f8e23beeef1fbffde1/pydantic-1.10.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "ad57004e5d73aee36f1e25e4e73a4bc853b473a1c30f652dc8d86b0a987ffce3", + "url": "https://files.pythonhosted.org/packages/85/e5/34b62732fa683d1171be07fb40f0bab3fb35bc52e56bfcae1629aee236c4/pydantic-1.10.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "72fa46abace0a7743cc697dbb830a41ee84c9db8456e8d77a46d79b537efd7ec", - "url": "https://files.pythonhosted.org/packages/42/c1/d5f1a844e2bc08ccb0330d2d656595e177aba494d69a3fd42e3a35f11526/pydantic-1.10.18-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "fea36c2065b7a1d28c6819cc2e93387b43dd5d3cf5a1e82d8132ee23f36d1f10", + "url": "https://files.pythonhosted.org/packages/a1/2d/df30554721cdad26b241b7a92e726dd1c3716d90c92915731eb00e17a9f7/pydantic-1.10.19.tar.gz" }, { "algorithm": "sha256", - "hash": "3445426da503c7e40baccefb2b2989a0c5ce6b163679dd75f55493b460f05a8f", - "url": "https://files.pythonhosted.org/packages/a2/de/ed086c435121c4bf915720528637e4fe7edc9b00057337512b122f1bc2db/pydantic-1.10.18-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "d7a8a1dd68bac29f08f0a3147de1885f4dccec35d4ea926e6e637fac03cdb4b3", + "url": "https://files.pythonhosted.org/packages/d9/e7/c3276090605233eeda49e3f290ef6e8dc59962f883fa7934455996986d67/pydantic-1.10.19-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "9f463abafdc92635da4b38807f5b9972276be7c8c5121989768549fceb8d2588", - "url": "https://files.pythonhosted.org/packages/cf/e2/0e3b2250f470faa4ff150ff5e6729e1cec62e35abfc8f5150f4e794e4585/pydantic-1.10.18-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "0d32227ea9a3bf537a2273fd2fdb6d64ab4d9b83acd9e4e09310a777baaabb98", + "url": "https://files.pythonhosted.org/packages/f1/72/7cf7dfc8e68098751a5cee8969a967dad2acf9ce460963d071296bdeee81/pydantic-1.10.19-cp311-cp311-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "a00e63104346145389b8e8f500bc6a241e729feaf0559b88b8aa513dd2065481", - "url": "https://files.pythonhosted.org/packages/d1/34/1a9c2745e28ca5891adbff2730c1f81f3e191aeb1c2108c8c7757dfa1989/pydantic-1.10.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "dce355fe7ae53e3090f7f5fa242423c3a7b53260747aa398b4b3aaf8b25f41c3", + "url": "https://files.pythonhosted.org/packages/f5/23/be131d6162cd2c4f7f29cf0a881c0e9bdbf7c37010803f8a85010bf016bf/pydantic-1.10.19-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" } ], "project_name": "pydantic", @@ -1169,7 +1183,7 @@ "typing-extensions>=4.2.0" ], "requires_python": ">=3.7", - "version": "1.10.18" + "version": "1.10.19" }, { "artifacts": [ @@ -1233,13 +1247,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850", - "url": "https://files.pythonhosted.org/packages/79/84/0fdf9b18ba31d69877bd39c9cd6052b47f3761e9910c15de788e519f079f/PyJWT-2.9.0-py3-none-any.whl" + "hash": "dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", + "url": "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c", - "url": "https://files.pythonhosted.org/packages/fb/68/ce067f09fca4abeca8771fe667d89cc347d1e99da3e093112ac329c6020e/pyjwt-2.9.0.tar.gz" + "hash": "3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", + "url": "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz" } ], "project_name": "pyjwt", @@ -1258,8 +1272,8 @@ "zope.interface; extra == \"dev\"", "zope.interface; extra == \"docs\"" ], - "requires_python": ">=3.8", - "version": "2.9.0" + "requires_python": ">=3.9", + "version": "2.10.1" }, { "artifacts": [ @@ -1675,19 +1689,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", - "url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl" + "hash": "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", + "url": "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "url": "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz" + "hash": "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", + "url": "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz" } ], "project_name": "six", "requires_dists": [], "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7", - "version": "1.16.0" + "version": "1.17.0" }, { "artifacts": [ @@ -1812,19 +1826,59 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38", - "url": "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl" + "hash": "cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", + "url": "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed", - "url": "https://files.pythonhosted.org/packages/35/b9/de2a5c0144d7d75a57ff355c0c24054f965b2dc3036456ae03a51ea6264b/tomli-2.0.2.tar.gz" + "hash": "cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", + "url": "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", + "url": "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", + "url": "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", + "url": "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", + "url": "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", + "url": "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", + "url": "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", + "url": "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", + "url": "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" } ], "project_name": "tomli", "requires_dists": [], "requires_python": ">=3.8", - "version": "2.0.2" + "version": "2.2.1" }, { "artifacts": [ @@ -2146,122 +2200,117 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f", - "url": "https://files.pythonhosted.org/packages/56/27/96a5cd2626d11c8280656c6c71d8ab50fe006490ef9971ccd154e0c42cd2/websockets-13.1-py3-none-any.whl" + "hash": "4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e", + "url": "https://files.pythonhosted.org/packages/b0/0b/c7e5d11020242984d9d37990310520ed663b942333b83a033c2f20191113/websockets-14.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9", - "url": "https://files.pythonhosted.org/packages/28/09/af9e19885539759efa2e2cd29b8b3f9eecef7ecefea40d46612f12138b36/websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac", + "url": "https://files.pythonhosted.org/packages/06/91/bf0a44e238660d37a2dda1b4896235d20c29a2d0450f3a46cd688f43b239/websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3", - "url": "https://files.pythonhosted.org/packages/30/93/c3891c20114eacb1af09dedfcc620c65c397f4fd80a7009cd12d9457f7f5/websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "f6cf0ad281c979306a6a34242b371e90e891bce504509fb6bb5246bbbf31e7b6", + "url": "https://files.pythonhosted.org/packages/11/43/e2dbd4401a63e409cebddedc1b63b9834de42f51b3c84db885469e9bdcef/websockets-14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd", - "url": "https://files.pythonhosted.org/packages/68/d4/c8c7c1e5b40ee03c5cc235955b0fb1ec90e7e37685a5f69229ad4708dcde/websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89", + "url": "https://files.pythonhosted.org/packages/49/69/e6f3d953f2fa0f8a723cf18cd011d52733bd7f6e045122b24e0e7f49f9b0/websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096", - "url": "https://files.pythonhosted.org/packages/af/9b/8c06d425a1d5a74fd764dd793edd02be18cf6fc3b1ccd1f29244ba132dc0/websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "3c3deac3748ec73ef24fc7be0b68220d14d47d6647d2f85b2771cb35ea847aa1", + "url": "https://files.pythonhosted.org/packages/5a/8a/0849968d83474be89c183d8ae8dcb7f7ada1a3c24f4d2a0d7333c231a2c3/websockets-14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19", - "url": "https://files.pythonhosted.org/packages/b2/f0/cf0b8a30d86b49e267ac84addbebbc7a48a6e7bb7c19db80f62411452311/websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0", + "url": "https://files.pythonhosted.org/packages/6d/d6/7063e3f5c1b612e9f70faae20ebaeb2e684ffa36cb959eb0862ee2809b32/websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7", - "url": "https://files.pythonhosted.org/packages/bc/49/4a4ad8c072f18fd79ab127650e47b160571aacfc30b110ee305ba25fffc9/websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23", + "url": "https://files.pythonhosted.org/packages/70/ff/f31fa14561fc1d7b8663b0ed719996cf1f581abee32c8fb2f295a472f268/websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5", - "url": "https://files.pythonhosted.org/packages/bf/e7/22285852502e33071a8cf0ac814f8988480ec6db4754e067b8b9d0e92498/websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512", + "url": "https://files.pythonhosted.org/packages/97/ed/c0d03cb607b7fe1f7ff45e2cd4bb5cd0f9e3299ced79c2c303a6fff44524/websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02", - "url": "https://files.pythonhosted.org/packages/c9/e4/c50999b9b848b1332b07c7fd8886179ac395cb766fda62725d1539e7bc6c/websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "7048eb4415d46368ef29d32133134c513f507fff7d953c18c91104738a68c3b3", + "url": "https://files.pythonhosted.org/packages/bd/4f/ef886e37245ff6b4a736a09b8468dae05d5d5c99de1357f840d54c6f297d/websockets-14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084", - "url": "https://files.pythonhosted.org/packages/d5/5b/0acb5815095ff800b579ffc38b13ab1b915b317915023748812d24e0c1ac/websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8", + "url": "https://files.pythonhosted.org/packages/f4/1b/380b883ce05bb5f45a905b61790319a28958a9ab1e4b6b95ff5464b60ca1/websockets-14.1.tar.gz" }, { "algorithm": "sha256", - "hash": "a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878", - "url": "https://files.pythonhosted.org/packages/e2/73/9223dbc7be3dcaf2a7bbf756c351ec8da04b1fa573edaf545b95f6b0c7fd/websockets-13.1.tar.gz" + "hash": "b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280", + "url": "https://files.pythonhosted.org/packages/ff/b8/7185212adad274c2b42b6a24e1ee6b916b7809ed611cbebc33b227e5c215/websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl" } ], "project_name": "websockets", "requires_dists": [], - "requires_python": ">=3.8", - "version": "13.1" + "requires_python": ">=3.9", + "version": "14.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1", - "url": "https://files.pythonhosted.org/packages/ff/21/abdedb4cdf6ff41ebf01a74087740a709e2edb146490e4d9beea054b0b7a/wrapt-1.16.0-py3-none-any.whl" + "hash": "d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371", + "url": "https://files.pythonhosted.org/packages/4b/d9/a8ba5e9507a9af1917285d118388c5eb7a81834873f45df213a6fe923774/wrapt-1.17.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d", - "url": "https://files.pythonhosted.org/packages/0f/16/ea627d7817394db04518f62934a5de59874b587b792300991b3c347ff5e0/wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a", + "url": "https://files.pythonhosted.org/packages/0e/40/def56538acddc2f764c157d565b9f989072a1d2f2a8e384324e2e104fc7d/wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956", - "url": "https://files.pythonhosted.org/packages/0f/ef/0ecb1fa23145560431b970418dce575cfaec555ab08617d82eb92afc7ccf/wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801", + "url": "https://files.pythonhosted.org/packages/24/a1/fc03dca9b0432725c2e8cdbf91a349d2194cf03d8523c124faebe581de09/wrapt-1.17.0.tar.gz" }, { "algorithm": "sha256", - "hash": "d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3", - "url": "https://files.pythonhosted.org/packages/11/fb/18ec40265ab81c0e82a934de04596b6ce972c27ba2592c8b53d5585e6bcd/wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489", + "url": "https://files.pythonhosted.org/packages/29/ef/fcdb776b12df5ea7180d065b28fa6bb27ac785dddcd7202a0b6962bbdb47/wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d", - "url": "https://files.pythonhosted.org/packages/25/62/cd284b2b747f175b5a96cbd8092b32e7369edab0644c45784871528eb852/wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d", + "url": "https://files.pythonhosted.org/packages/42/92/c48ba92cda6f74cb914dc3c5bba9650dc80b790e121c4b987f3a46b028f5/wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1", - "url": "https://files.pythonhosted.org/packages/6e/52/2da48b35193e39ac53cfb141467d9f259851522d0e8c87153f0ba4205fb1/wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9", + "url": "https://files.pythonhosted.org/packages/55/b5/698bd0bf9fbb3ddb3a2feefbb7ad0dea1205f5d7d05b9cbab54f5db731aa/wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389", - "url": "https://files.pythonhosted.org/packages/7f/a7/f1212ba098f3de0fd244e2de0f8791ad2539c03bef6c05a9fcb03e45b089/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed", + "url": "https://files.pythonhosted.org/packages/89/e2/8c299f384ae4364193724e2adad99f9504599d02a73ec9199bf3f406549d/wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d", - "url": "https://files.pythonhosted.org/packages/95/4c/063a912e20bcef7124e0df97282a8af3ff3e4b603ce84c481d6d7346be0a/wrapt-1.16.0.tar.gz" + "hash": "bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b", + "url": "https://files.pythonhosted.org/packages/8a/0a/9276d3269334138b88a2947efaaf6335f61d547698e50dff672ade24f2c6/wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060", - "url": "https://files.pythonhosted.org/packages/b7/96/bb5e08b3d6db003c9ab219c487714c13a237ee7dcc572a555eaf1ce7dc82/wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" - }, - { - "algorithm": "sha256", - "hash": "1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09", - "url": "https://files.pythonhosted.org/packages/fd/03/c188ac517f402775b90d6f312955a5e53b866c964b32119f2ed76315697e/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339", + "url": "https://files.pythonhosted.org/packages/ce/07/701a5cee28cb4d5df030d4b2649319e36f3d9fdd8000ef1d84eb06b9860d/wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl" } ], "project_name": "wrapt", "requires_dists": [], - "requires_python": ">=3.6", - "version": "1.16.0" + "requires_python": ">=3.8", + "version": "1.17.0" } ], "platform_tag": null @@ -2271,8 +2320,8 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.20.3", - "pip_version": "24.2", + "pex_version": "2.25.2", + "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ "PyGithub==2.4.0", From 76e231083232a2a239d0113530d691b34280119d Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Thu, 12 Dec 2024 19:17:16 -0500 Subject: [PATCH 03/14] downgrade to v2.24.3 which is latest main --- src/python/pants/backend/python/util_rules/pex_cli.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index f95b27402dc..8b9a168ac21 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -41,8 +41,12 @@ class PexCli(TemplatedExternalTool): name = "pex" help = "The PEX (Python EXecutable) tool (https://github.com/pex-tool/pex)." - default_version = "2.25.2" + default_version = "2.24.3" default_known_versions = [ + "2.24.3|linux_arm64|3ebccdcfe538891f65b2caff6ba2481242652cf548d06b51738e453b2c37c1e5|23823983", + "2.24.3|linux_x86_64|8322a0a9d43542f4e47eaf1684af96a0b3f0bc18904e6c2995821f5ef300be70|25506456", + "2.24.3|macos_arm64|2f268523fdd61394361039d569901321d6ebfb2094ab85e9d8a44236ff199219|21599082", + "2.24.3|macos_x86_64|49fe233e4110bc281d48d974dce3f89873e459b11184c0a44ce346b511fb57ff|22188826", "2.25.2|linux_arm64|84de123dcd7af527d615c8b3034f5d5c33949a92264c71f6d612cbfa50cfa673|23825049", "2.25.2|linux_x86_64|182643a2e45959d55ba07d427da019c755733282c99897a655815755a751590b|25507528", "2.25.2|macos_arm64|ce9b92f0bdb7d3916b8ea06a555856b9301959194abc4941a3b0efbbb9d3caa7|21600151", @@ -58,7 +62,7 @@ class PexCli(TemplatedExternalTool): "macos_arm64": "macos-aarch64", "macos_x86_64": "macos-x86_64", } - version_constraints = ">=2.25.0,<3.0" + version_constraints = ">=2.24.0,<3.0" # extra args to be passed to the pex tool; note that they # are going to apply to all invocations of the pex tool. From 450a9dc255204700b45526be1deb3c5374bf5fbd Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Thu, 12 Dec 2024 19:21:33 -0500 Subject: [PATCH 04/14] lockfiles from pex downgrade --- 3rdparty/python/flake8.lock | 3 +-- 3rdparty/python/mypy.lock | 3 +-- 3rdparty/python/pbs-script-requirements.lock | 3 +-- 3rdparty/python/pytest.lock | 3 +-- 3rdparty/python/user_reqs.lock | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/3rdparty/python/flake8.lock b/3rdparty/python/flake8.lock index 805b0ec308b..bfa947e2f5a 100644 --- a/3rdparty/python/flake8.lock +++ b/3rdparty/python/flake8.lock @@ -27,7 +27,6 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], - "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -193,7 +192,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.25.2", + "pex_version": "2.24.3", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/mypy.lock b/3rdparty/python/mypy.lock index 2c75e9706e8..48c59284bf1 100644 --- a/3rdparty/python/mypy.lock +++ b/3rdparty/python/mypy.lock @@ -26,7 +26,6 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], - "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -243,7 +242,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.25.2", + "pex_version": "2.24.3", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/pbs-script-requirements.lock b/3rdparty/python/pbs-script-requirements.lock index 59566e075fb..b8585174c0a 100644 --- a/3rdparty/python/pbs-script-requirements.lock +++ b/3rdparty/python/pbs-script-requirements.lock @@ -26,7 +26,6 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], - "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -658,7 +657,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.25.2", + "pex_version": "2.24.3", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/pytest.lock b/3rdparty/python/pytest.lock index 9302f527bd4..952bc860ee9 100644 --- a/3rdparty/python/pytest.lock +++ b/3rdparty/python/pytest.lock @@ -31,7 +31,6 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], - "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -1101,7 +1100,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.25.2", + "pex_version": "2.24.3", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/user_reqs.lock b/3rdparty/python/user_reqs.lock index 7958a57e41c..e3565a6367c 100644 --- a/3rdparty/python/user_reqs.lock +++ b/3rdparty/python/user_reqs.lock @@ -57,7 +57,6 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], - "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -2320,7 +2319,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.25.2", + "pex_version": "2.24.3", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ From 995c3f547194873115869a99a627bcfcb4adc978 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Fri, 3 Jan 2025 14:05:14 +0000 Subject: [PATCH 05/14] checkpoint --- .../pants/backend/python/goals/export.py | 11 +- .../pants/backend/python/util_rules/pex.py | 18 +-- .../backend/python/util_rules/pex_cli.py | 128 ++++++++++++++---- .../python/util_rules/pex_environment.py | 3 +- .../python/util_rules/pex_test_utils.py | 3 +- 5 files changed, 111 insertions(+), 52 deletions(-) diff --git a/src/python/pants/backend/python/goals/export.py b/src/python/pants/backend/python/goals/export.py index f9a86e369af..24294743312 100644 --- a/src/python/pants/backend/python/goals/export.py +++ b/src/python/pants/backend/python/goals/export.py @@ -21,7 +21,7 @@ EditableLocalDistsRequest, ) from pants.backend.python.util_rules.pex import Pex, PexRequest, VenvPex -from pants.backend.python.util_rules.pex_cli import PexSCIE +from pants.backend.python.util_rules.pex_cli import PexCliTool from pants.backend.python.util_rules.pex_environment import PexEnvironment, PythonExecutable from pants.backend.python.util_rules.pex_requirements import EntireLockfile, Lockfile from pants.core.goals.export import ( @@ -204,7 +204,7 @@ class VenvExportRequest: @rule async def do_export( req: VenvExportRequest, - pex_scie: PexSCIE, + pex_cli_tool: PexCliTool, pex_env: PexEnvironment, export_subsys: ExportSubsystem, ) -> ExportResult: @@ -269,7 +269,9 @@ async def do_export( f"(using Python {req.py_version})" ) - merged_digest = await Get(Digest, MergeDigests([pex_scie.digest, requirements_pex.digest])) + merged_digest = await Get( + Digest, MergeDigests([pex_cli_tool.digest, requirements_pex.digest]) + ) tmpdir_prefix = f".{uuid.uuid4().hex}.tmp" tmpdir_under_digest_root = os.path.join("{digest_root}", tmpdir_prefix) merged_digest_under_tmpdir = await Get(Digest, AddPrefix(merged_digest, tmpdir_prefix)) @@ -293,7 +295,8 @@ async def do_export( post_processing_cmds = [ PostProcessingCommand( complete_pex_env.create_argv( - os.path.join(tmpdir_under_digest_root, pex_scie.exe), + os.path.join(tmpdir_under_digest_root, pex_cli_tool.exe), + *(["pex"] if pex_cli_tool.is_scie else []), *pex_args, ), { diff --git a/src/python/pants/backend/python/util_rules/pex.py b/src/python/pants/backend/python/util_rules/pex.py index 321017755b0..cb579907bca 100644 --- a/src/python/pants/backend/python/util_rules/pex.py +++ b/src/python/pants/backend/python/util_rules/pex.py @@ -28,7 +28,7 @@ ) from pants.backend.python.util_rules import pex_cli, pex_requirements from pants.backend.python.util_rules.interpreter_constraints import InterpreterConstraints -from pants.backend.python.util_rules.pex_cli import PexCliProcess, PexSCIE, maybe_log_pex_stderr +from pants.backend.python.util_rules.pex_cli import PexCliProcess, maybe_log_pex_stderr from pants.backend.python.util_rules.pex_environment import ( CompletePexEnvironment, PexEnvironment, @@ -1372,21 +1372,5 @@ async def determine_venv_pex_resolve_info(venv_pex: VenvPex) -> PexResolveInfo: return parse_repository_info(process_result.stdout.decode()) -@rule -async def determine_pex_resolve_info(pex_scie: PexSCIE, pex: Pex) -> PexResolveInfo: - process_result = await Get( - ProcessResult, - Process( - pex=Pex(digest=pex_scie.digest, name=pex_scie.exe, python=pex.python), - argv=[pex.name, "repository", "info", "-v"], - input_digest=pex.digest, - extra_env={"PEX_MODULE": "pex.tools"}, - description=f"Determine distributions found in {pex.name}", - level=LogLevel.DEBUG, - ), - ) - return parse_repository_info(process_result.stdout.decode()) - - def rules(): return [*collect_rules(), *pex_cli.rules(), *pex_requirements.rules(), *stripped_source_rules()] diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index 8b9a168ac21..e308b1f76ff 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -28,9 +28,10 @@ from pants.engine.rules import Get, collect_rules, rule from pants.engine.unions import UnionRule from pants.option.global_options import GlobalOptions, ca_certs_path_to_file_content -from pants.option.option_types import ArgsListOption +from pants.option.option_types import ArgsListOption, BoolOption from pants.util.frozendict import FrozenDict from pants.util.logging import LogLevel +from pants.util.meta import classproperty from pants.util.strutil import softwrap logger = logging.getLogger(__name__) @@ -41,16 +42,57 @@ class PexCli(TemplatedExternalTool): name = "pex" help = "The PEX (Python EXecutable) tool (https://github.com/pex-tool/pex)." - default_version = "2.24.3" + default_version = "v2.27.1" + default_url_template = "https://github.com/pex-tool/pex/releases/download/{version}/pex" + version_constraints = ">=2.13.0,<3.0" + + # extra args to be passed to the pex tool; note that they + # are going to apply to all invocations of the pex tool. + global_args = ArgsListOption( + example="--check=error --no-compile", + extra_help=softwrap( + """ + Note that these apply to all invocations of the pex tool, including building `pex_binary` + targets, preparing `python_test` targets to run, and generating lockfiles. + """ + ), + ) + + @classproperty + def default_known_versions(cls): + return [ + "|".join( + ( + cls.default_version, + plat, + "013a824e5af50f9687f765a43e8ffe94b4faa4fe795d017333c687bf943a4a68", + "4369121", + ) + ) + for plat in ["macos_arm64", "macos_x86_64", "linux_x86_64", "linux_arm64"] + ] + + use_scie_distribution = BoolOption( + default=False, + help=softwrap( + """ + Use the SCIE-packaged distribution of the PEX tool instead of the PEX distribution. + """ + ), + ) + + +class PexCliSCIE(TemplatedExternalTool): + options_scope = "pex-cli-scie" + name = "pex" + help = "The PEX (Python EXecutable) tool (https://github.com/pex-tool/pex). MODE CHANGE! SCIE!" + + default_version = "2.27.1" default_known_versions = [ - "2.24.3|linux_arm64|3ebccdcfe538891f65b2caff6ba2481242652cf548d06b51738e453b2c37c1e5|23823983", - "2.24.3|linux_x86_64|8322a0a9d43542f4e47eaf1684af96a0b3f0bc18904e6c2995821f5ef300be70|25506456", - "2.24.3|macos_arm64|2f268523fdd61394361039d569901321d6ebfb2094ab85e9d8a44236ff199219|21599082", - "2.24.3|macos_x86_64|49fe233e4110bc281d48d974dce3f89873e459b11184c0a44ce346b511fb57ff|22188826", - "2.25.2|linux_arm64|84de123dcd7af527d615c8b3034f5d5c33949a92264c71f6d612cbfa50cfa673|23825049", - "2.25.2|linux_x86_64|182643a2e45959d55ba07d427da019c755733282c99897a655815755a751590b|25507528", - "2.25.2|macos_arm64|ce9b92f0bdb7d3916b8ea06a555856b9301959194abc4941a3b0efbbb9d3caa7|21600151", - "2.25.2|macos_x86_64|5479e2608d7966a54e83f90cd9c82b94b247f5b5fe8b4a67e3d6edf1d23dce0e|22189893", + "2.27.1|linux_arm64|08c3b6e5056486e9b7ba34da1e734c110ea3c60ea01ad08c9e1d49b519e92021|23813115", + "2.27.1|linux_x86_64|7d4361200d89d361ef1ff0187ea62ef89c12c45f23ff75ed2a652486a76f0b34|25587583", + "2.27.1|macos_arm64|d472a9b58dc250e58ac5298bfeaad391ad74ec0ac7a8c47ddff6b09bc4a70ac0|21640098", + "2.27.1|macos_x86_64|60e1dadb5a071db25f331790cdd19df86fc05c464b3220e8e26e8df290103104|22188797", ] default_url_template = ( @@ -64,18 +106,6 @@ class PexCli(TemplatedExternalTool): } version_constraints = ">=2.24.0,<3.0" - # extra args to be passed to the pex tool; note that they - # are going to apply to all invocations of the pex tool. - global_args = ArgsListOption( - example="--check=error --no-compile", - extra_help=softwrap( - """ - Note that these apply to all invocations of the pex tool, including building `pex_binary` - targets, preparing `python_test` targets to run, and generating lockfiles. - """ - ), - ) - @dataclass(frozen=True) class PexCliProcess: @@ -124,26 +154,63 @@ def __post_init__(self) -> None: raise ValueError("`--pex-root` flag not allowed. We set its value for you.") +class PexPEX(DownloadedExternalTool): + """The Pex PEX distribution.""" + + class PexSCIE(DownloadedExternalTool): """The Pex SCIE binary.""" +@dataclass +class PexCliTool: + digest: Digest + exe: str + is_scie: bool + + +@rule +async def download_pex_pex(pex_cli: PexCli, platform: Platform) -> PexPEX: + tool = await Get(DownloadedExternalTool, ExternalToolRequest, pex_cli.get_request(platform)) + return PexPEX(digest=tool.digest, exe=tool.exe) + + @rule -async def download_pex_pex(pex_cli: PexCli, platform: Platform) -> PexSCIE: - pex_pex = await Get(DownloadedExternalTool, ExternalToolRequest, pex_cli.get_request(platform)) - return PexSCIE(digest=pex_pex.digest, exe=pex_pex.exe) +async def download_pex_scie(pex_cli_scie: PexCliSCIE, platform: Platform) -> PexSCIE: + tool = await Get( + DownloadedExternalTool, ExternalToolRequest, pex_cli_scie.get_request(platform) + ) + return PexSCIE(digest=tool.digest, exe=tool.exe) + + +@rule +async def downloadn_pex_cli_tool(pex_cli_subsystem: PexCli) -> PexCliTool: + if pex_cli_subsystem.use_scie_distribution: + pex_scie = await Get(PexSCIE) + return PexCliTool( + digest=pex_scie.digest, + exe=pex_scie.exe, + is_scie=True, + ) + else: + pex_pex = await Get(PexPEX) + return PexCliTool( + digest=pex_pex.digest, + exe=pex_pex.exe, + is_scie=False, + ) @rule async def setup_pex_cli_process( request: PexCliProcess, - pex_scie: PexSCIE, pex_env: PexEnvironment, bootstrap_python: PythonBuildStandaloneBinary, python_native_code: PythonNativeCodeSubsystem.EnvironmentAware, global_options: GlobalOptions, pex_subsystem: PexSubsystem, pex_cli_subsystem: PexCli, + pex_cli_tool: PexCliTool, python_setup: PythonSetup, ) -> Process: tmpdir = ".tmp" @@ -155,7 +222,7 @@ async def setup_pex_cli_process( gets.append(Get(Digest, CreateDigest((ca_certs_fc,)))) cert_args = ["--cert", ca_certs_fc.path] - digests_to_merge = [pex_scie.digest] + digests_to_merge = [pex_cli_tool.digest] digests_to_merge.extend(await MultiGet(gets)) if request.additional_input_digest: digests_to_merge.append(request.additional_input_digest) @@ -207,7 +274,12 @@ async def setup_pex_cli_process( ] complete_pex_env = pex_env.in_sandbox(working_directory=None) - normalized_argv = complete_pex_env.create_argv(pex_scie.exe, *args) + normalized_argv: tuple[str, ...] + if pex_cli_tool.is_scie: + normalized_argv = (pex_cli_tool.exe, "pex", *args) + else: + normalized_argv = complete_pex_env.create_argv(pex_cli_tool.exe, *args) + env = { **complete_pex_env.environment_dict(python=bootstrap_python), **python_native_code.subprocess_env_vars, diff --git a/src/python/pants/backend/python/util_rules/pex_environment.py b/src/python/pants/backend/python/util_rules/pex_environment.py index 14d948591e6..5137179f5ba 100644 --- a/src/python/pants/backend/python/util_rules/pex_environment.py +++ b/src/python/pants/backend/python/util_rules/pex_environment.py @@ -218,8 +218,7 @@ def create_argv(self, pex_filepath: str, *args: str) -> tuple[str, ...]: if self._working_directory else pex_filepath ) - # Use the SCIE exe path and then "pex" so we get the pex tool. (Other choices are "pex3" and "pex-tools".) - return (pex_relpath, "pex", *args) + return (self._pex_environment.bootstrap_python.path, pex_relpath, *args) def environment_dict( self, *, python: PythonExecutable | PythonBuildStandaloneBinary | None = None diff --git a/src/python/pants/backend/python/util_rules/pex_test_utils.py b/src/python/pants/backend/python/util_rules/pex_test_utils.py index 0dd64919b3d..1a3a9ff6378 100644 --- a/src/python/pants/backend/python/util_rules/pex_test_utils.py +++ b/src/python/pants/backend/python/util_rules/pex_test_utils.py @@ -20,7 +20,7 @@ VenvPex, VenvPexProcess, ) -from pants.backend.python.util_rules.pex_cli import PexSCIE +from pants.backend.python.util_rules.pex_cli import PexPEX, PexSCIE from pants.backend.python.util_rules.pex_requirements import EntireLockfile, PexRequirements from pants.engine.fs import Digest from pants.engine.process import Process, ProcessResult @@ -172,6 +172,7 @@ def create_pex_and_get_pex_info( def rules(): return [ + QueryRule(PexPEX, ()), QueryRule(PexSCIE, ()), QueryRule(Pex, (PexRequest,)), QueryRule(VenvPex, (PexRequest,)), From bb5025f4a2518e52a6fe9266d7e13eb3554413e5 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Fri, 3 Jan 2025 16:16:39 +0000 Subject: [PATCH 06/14] update lockfiles --- 3rdparty/python/flake8.lock | 3 +- 3rdparty/python/mypy.lock | 3 +- 3rdparty/python/pbs-script-requirements.lock | 91 +++++++------- 3rdparty/python/pytest.lock | 100 +++++++-------- 3rdparty/python/user_reqs.lock | 121 +++++++++---------- 5 files changed, 150 insertions(+), 168 deletions(-) diff --git a/3rdparty/python/flake8.lock b/3rdparty/python/flake8.lock index bfa947e2f5a..8cd54a3aada 100644 --- a/3rdparty/python/flake8.lock +++ b/3rdparty/python/flake8.lock @@ -27,6 +27,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -192,7 +193,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.24.3", + "pex_version": "2.27.1", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/mypy.lock b/3rdparty/python/mypy.lock index 48c59284bf1..24d8a476fad 100644 --- a/3rdparty/python/mypy.lock +++ b/3rdparty/python/mypy.lock @@ -26,6 +26,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -242,7 +243,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.24.3", + "pex_version": "2.27.1", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/pbs-script-requirements.lock b/3rdparty/python/pbs-script-requirements.lock index b8585174c0a..d87562cd312 100644 --- a/3rdparty/python/pbs-script-requirements.lock +++ b/3rdparty/python/pbs-script-requirements.lock @@ -26,6 +26,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -34,19 +35,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", - "url": "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" + "hash": "1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", + "url": "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", - "url": "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" + "hash": "b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", + "url": "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz" } ], "project_name": "certifi", "requires_dists": [], "requires_python": ">=3.6", - "version": "2024.8.30" + "version": "2024.12.14" }, { "artifacts": [ @@ -117,84 +118,74 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", - "url": "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + "hash": "d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", + "url": "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", - "url": "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", + "url": "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz" }, { "algorithm": "sha256", - "hash": "82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", - "url": "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", + "url": "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", - "url": "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", + "url": "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", - "url": "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl" + "hash": "237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", + "url": "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", - "url": "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", + "url": "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", - "url": "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + "hash": "f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", + "url": "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", - "url": "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", + "url": "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", - "url": "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", + "url": "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", - "url": "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", + "url": "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", - "url": "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", + "url": "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", - "url": "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", + "url": "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl" }, { "algorithm": "sha256", - "hash": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", - "url": "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" - }, - { - "algorithm": "sha256", - "hash": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", - "url": "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" - }, - { - "algorithm": "sha256", - "hash": "8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", - "url": "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", + "url": "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" } ], "project_name": "charset-normalizer", "requires_dists": [], - "requires_python": ">=3.7.0", - "version": "3.4.0" + "requires_python": ">=3.7", + "version": "3.4.1" }, { "artifacts": [ @@ -576,13 +567,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", - "url": "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl" + "hash": "1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", + "url": "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", - "url": "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz" + "hash": "f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", + "url": "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz" } ], "project_name": "urllib3", @@ -593,8 +584,8 @@ "pysocks!=1.5.7,<2.0,>=1.5.6; extra == \"socks\"", "zstandard>=0.18.0; extra == \"zstd\"" ], - "requires_python": ">=3.8", - "version": "2.2.3" + "requires_python": ">=3.9", + "version": "2.3.0" }, { "artifacts": [ @@ -657,7 +648,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.24.3", + "pex_version": "2.27.1", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/pytest.lock b/3rdparty/python/pytest.lock index 952bc860ee9..cfec0778a0b 100644 --- a/3rdparty/python/pytest.lock +++ b/3rdparty/python/pytest.lock @@ -31,6 +31,7 @@ "allow_wheels": true, "build_isolation": true, "constraints": [], + "elide_unused_requires_dist": false, "excluded": [], "locked_resolves": [ { @@ -63,13 +64,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", - "url": "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl" + "hash": "ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", + "url": "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", - "url": "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz" + "hash": "8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", + "url": "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz" } ], "project_name": "attrs", @@ -85,24 +86,23 @@ "hypothesis; extra == \"cov\"", "hypothesis; extra == \"dev\"", "hypothesis; extra == \"tests\"", - "importlib-metadata; python_version < \"3.8\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"benchmark\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"cov\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"dev\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests-mypy\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"benchmark\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"cov\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"dev\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests-mypy\"", "myst-parser; extra == \"docs\"", - "pre-commit; extra == \"dev\"", + "pre-commit-uv; extra == \"dev\"", "pympler; extra == \"benchmark\"", "pympler; extra == \"cov\"", "pympler; extra == \"dev\"", "pympler; extra == \"tests\"", "pytest-codspeed; extra == \"benchmark\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"benchmark\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"cov\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"dev\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests-mypy\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"cov\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"dev\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests-mypy\"", "pytest-xdist[psutil]; extra == \"benchmark\"", "pytest-xdist[psutil]; extra == \"cov\"", "pytest-xdist[psutil]; extra == \"dev\"", @@ -116,60 +116,60 @@ "sphinxcontrib-towncrier; extra == \"docs\"", "towncrier<24.7; extra == \"docs\"" ], - "requires_python": ">=3.7", - "version": "24.2.0" + "requires_python": ">=3.8", + "version": "24.3.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b", - "url": "https://files.pythonhosted.org/packages/15/0e/4ac9035ee2ee08d2b703fdad2d84283ec0bad3b46eb4ad6affb150174cb6/coverage-7.6.9-pp39.pp310-none-any.whl" + "hash": "fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f", + "url": "https://files.pythonhosted.org/packages/a1/70/de81bfec9ed38a64fc44a77c7665e20ca507fc3265597c28b0d989e4082e/coverage-7.6.10-pp39.pp310-none-any.whl" }, { "algorithm": "sha256", - "hash": "085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c", - "url": "https://files.pythonhosted.org/packages/0d/2b/53fd6cb34d443429a92b3ec737f4953627e38b3bee2a67a3c03425ba8573/coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132", + "url": "https://files.pythonhosted.org/packages/0d/62/c6a0cf80318c1c1af376d52df444da3608eafc913b82c84a4600d8349472/coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3", - "url": "https://files.pythonhosted.org/packages/33/6d/31f6ab0b4f0f781636075f757eb02141ea1b34466d9d1526dbc586ed7078/coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994", + "url": "https://files.pythonhosted.org/packages/2c/f8/ef009b3b98e9f7033c19deb40d629354aab1d8b2d7f9cfec284dbedf5096/coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b", - "url": "https://files.pythonhosted.org/packages/58/2f/9d2203f012f3b0533c73336c74134b608742be1ce475a5c72012573cfbb4/coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd", + "url": "https://files.pythonhosted.org/packages/2d/10/57ac3f191a3c95c67844099514ff44e6e19b2915cd1c22269fb27f9b17b6/coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d", - "url": "https://files.pythonhosted.org/packages/5b/d2/c25011f4d036cf7e8acbbee07a8e09e9018390aee25ba085596c4b83d510/coverage-7.6.9.tar.gz" + "hash": "507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43", + "url": "https://files.pythonhosted.org/packages/4b/6f/06db4dc8fca33c13b673986e20e466fd936235a6ec1f0045c3853ac1b593/coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1", - "url": "https://files.pythonhosted.org/packages/6f/62/4ac2e5ad9e7a5c9ec351f38947528e11541f1f00e8a0cdce56f1ba7ae301/coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23", + "url": "https://files.pythonhosted.org/packages/84/ba/ac14d281f80aab516275012e8875991bb06203957aa1e19950139238d658/coverage-7.6.10.tar.gz" }, { "algorithm": "sha256", - "hash": "ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7", - "url": "https://files.pythonhosted.org/packages/74/f2/68edb1e6826f980a124f21ea5be0d324180bf11de6fd1defcf9604f76df0/coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3", + "url": "https://files.pythonhosted.org/packages/85/d2/5e175fcf6766cf7501a8541d81778fd2f52f4870100e791f5327fd23270b/coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4", - "url": "https://files.pythonhosted.org/packages/8b/20/8f50e7c7ad271144afbc2c1c6ec5541a8c81773f59352f8db544cad1a0ec/coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f", + "url": "https://files.pythonhosted.org/packages/a3/59/750adafc2e57786d2e8739a46b680d4fb0fbc2d57fbcb161290a9f1ecf23/coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9", - "url": "https://files.pythonhosted.org/packages/b1/91/b3dc2f7f38b5cca1236ab6bbb03e84046dd887707b4ec1db2baa47493b3b/coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99", + "url": "https://files.pythonhosted.org/packages/a6/e2/6622f3b70f5f5b59f705e680dae6db64421af05a5d1e389afd24dae62e5b/coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9", - "url": "https://files.pythonhosted.org/packages/d3/83/8fec0ee68c2c4a5ab5f0f8527277f84ed6f2bd1310ae8a19d0c5532253ab/coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377", + "url": "https://files.pythonhosted.org/packages/ee/2d/7016f4ad9d553cabcb7333ed78ff9d27248ec4eba8dd21fa488254dff894/coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl" } ], "project_name": "coverage", @@ -177,7 +177,7 @@ "tomli; python_full_version <= \"3.11.0a6\" and extra == \"toml\"" ], "requires_python": ">=3.9", - "version": "7.6.9" + "version": "7.6.10" }, { "artifacts": [ @@ -323,13 +323,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321", - "url": "https://files.pythonhosted.org/packages/1d/f3/1332ba2f682b07b304ad34cad2f003adcfeb349486103f4b632335074a7c/ipython-8.30.0-py3-none-any.whl" + "hash": "46ec58f8d3d076a61d128fe517a51eb730e3aaf0c184ea8c17d16e366660c6a6", + "url": "https://files.pythonhosted.org/packages/04/60/d0feb6b6d9fe4ab89fe8fe5b47cbf6cd936bfd9f1e7ffa9d0015425aeed6/ipython-8.31.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e", - "url": "https://files.pythonhosted.org/packages/d8/8b/710af065ab8ed05649afa5bd1e07401637c9ec9fb7cfda9eac7e91e9fbd4/ipython-8.30.0.tar.gz" + "hash": "b6a2274606bec6166405ff05e54932ed6e5cfecaca1fc05f2cacde7bb074d70b", + "url": "https://files.pythonhosted.org/packages/01/35/6f90fdddff7a08b7b715fccbd2427b5212c9525cd043d26fdc45bee0708d/ipython-8.31.0.tar.gz" } ], "project_name": "ipython", @@ -382,7 +382,7 @@ "typing_extensions>=4.6; python_version < \"3.12\"" ], "requires_python": ">=3.10", - "version": "8.30.0" + "version": "8.31.0" }, { "artifacts": [ @@ -441,13 +441,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", - "url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl" + "hash": "aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", + "url": "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", - "url": "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz" + "hash": "8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb", + "url": "https://files.pythonhosted.org/packages/af/92/b3130cbbf5591acf9ade8708c365f3238046ac7cb8ccba6e81abccb0ccff/jinja2-3.1.5.tar.gz" } ], "project_name": "jinja2", @@ -456,7 +456,7 @@ "MarkupSafe>=2.0" ], "requires_python": ">=3.7", - "version": "3.1.4" + "version": "3.1.5" }, { "artifacts": [ @@ -1100,7 +1100,7 @@ "only_wheels": [], "overridden": [], "path_mappings": {}, - "pex_version": "2.24.3", + "pex_version": "2.27.1", "pip_version": "24.3.1", "prefer_older_binary": false, "requirements": [ diff --git a/3rdparty/python/user_reqs.lock b/3rdparty/python/user_reqs.lock index f99e3c1ab38..b600ec68f55 100644 --- a/3rdparty/python/user_reqs.lock +++ b/3rdparty/python/user_reqs.lock @@ -145,13 +145,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", - "url": "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl" + "hash": "ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", + "url": "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", - "url": "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz" + "hash": "8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", + "url": "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz" } ], "project_name": "attrs", @@ -167,24 +167,23 @@ "hypothesis; extra == \"cov\"", "hypothesis; extra == \"dev\"", "hypothesis; extra == \"tests\"", - "importlib-metadata; python_version < \"3.8\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"benchmark\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"cov\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"dev\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests\"", - "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests-mypy\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"benchmark\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"cov\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"dev\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests-mypy\"", "myst-parser; extra == \"docs\"", - "pre-commit; extra == \"dev\"", + "pre-commit-uv; extra == \"dev\"", "pympler; extra == \"benchmark\"", "pympler; extra == \"cov\"", "pympler; extra == \"dev\"", "pympler; extra == \"tests\"", "pytest-codspeed; extra == \"benchmark\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"benchmark\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"cov\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"dev\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests-mypy\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"cov\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"dev\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.10\") and extra == \"tests-mypy\"", "pytest-xdist[psutil]; extra == \"benchmark\"", "pytest-xdist[psutil]; extra == \"cov\"", "pytest-xdist[psutil]; extra == \"dev\"", @@ -198,8 +197,8 @@ "sphinxcontrib-towncrier; extra == \"docs\"", "towncrier<24.7; extra == \"docs\"" ], - "requires_python": ">=3.7", - "version": "24.2.0" + "requires_python": ">=3.8", + "version": "24.3.0" }, { "artifacts": [ @@ -330,84 +329,74 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", - "url": "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" - }, - { - "algorithm": "sha256", - "hash": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", - "url": "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", + "url": "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", - "url": "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", + "url": "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz" }, { "algorithm": "sha256", - "hash": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", - "url": "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", + "url": "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", - "url": "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl" + "hash": "234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", + "url": "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", - "url": "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", + "url": "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", - "url": "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + "hash": "c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", + "url": "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", - "url": "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", + "url": "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", - "url": "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", + "url": "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", - "url": "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", + "url": "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", - "url": "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", + "url": "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", - "url": "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", + "url": "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", - "url": "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", + "url": "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl" }, { "algorithm": "sha256", - "hash": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", - "url": "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" - }, - { - "algorithm": "sha256", - "hash": "8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", - "url": "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", + "url": "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" } ], "project_name": "charset-normalizer", "requires_dists": [], - "requires_python": ">=3.7.0", - "version": "3.4.0" + "requires_python": ">=3.7", + "version": "3.4.1" }, { "artifacts": [ @@ -431,13 +420,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", - "url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl" + "hash": "63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", + "url": "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", - "url": "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz" + "hash": "ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", + "url": "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz" } ], "project_name": "click", @@ -446,7 +435,7 @@ "importlib-metadata; python_version < \"3.8\"" ], "requires_python": ">=3.7", - "version": "8.1.7" + "version": "8.1.8" }, { "artifacts": [ @@ -1333,13 +1322,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", - "url": "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl" + "hash": "506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", + "url": "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", - "url": "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz" + "hash": "61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a", + "url": "https://files.pythonhosted.org/packages/8b/1a/3544f4f299a47911c2ab3710f534e52fea62a633c96806995da5d25be4b2/pyparsing-3.2.1.tar.gz" } ], "project_name": "pyparsing", @@ -1348,7 +1337,7 @@ "railroad-diagrams; extra == \"diagrams\"" ], "requires_python": ">=3.9", - "version": "3.2.0" + "version": "3.2.1" }, { "artifacts": [ From 8b29507b9c88cb27ac9b6f4cd5897c20c74ce8e1 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Fri, 3 Jan 2025 21:56:00 +0000 Subject: [PATCH 07/14] put back removed rule --- .../pants/backend/python/util_rules/pex.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/python/pants/backend/python/util_rules/pex.py b/src/python/pants/backend/python/util_rules/pex.py index cb579907bca..cc3019d0586 100644 --- a/src/python/pants/backend/python/util_rules/pex.py +++ b/src/python/pants/backend/python/util_rules/pex.py @@ -28,7 +28,7 @@ ) from pants.backend.python.util_rules import pex_cli, pex_requirements from pants.backend.python.util_rules.interpreter_constraints import InterpreterConstraints -from pants.backend.python.util_rules.pex_cli import PexCliProcess, maybe_log_pex_stderr +from pants.backend.python.util_rules.pex_cli import PexCliProcess, PexPEX, maybe_log_pex_stderr from pants.backend.python.util_rules.pex_environment import ( CompletePexEnvironment, PexEnvironment, @@ -1372,5 +1372,21 @@ async def determine_venv_pex_resolve_info(venv_pex: VenvPex) -> PexResolveInfo: return parse_repository_info(process_result.stdout.decode()) +@rule +async def determine_pex_resolve_info(pex_pex: PexPEX, pex: Pex) -> PexResolveInfo: + process_result = await Get( + ProcessResult, + PexProcess( + pex=Pex(digest=pex_pex.digest, name=pex_pex.exe, python=pex.python), + argv=[pex.name, "repository", "info", "-v"], + input_digest=pex.digest, + extra_env={"PEX_MODULE": "pex.tools"}, + description=f"Determine distributions found in {pex.name}", + level=LogLevel.DEBUG, + ), + ) + return parse_repository_info(process_result.stdout.decode()) + + def rules(): return [*collect_rules(), *pex_cli.rules(), *pex_requirements.rules(), *stripped_source_rules()] From 3ab56bd2e30682605ebcd6ade0a03ada8771b21e Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Fri, 3 Jan 2025 23:11:33 +0000 Subject: [PATCH 08/14] default to SCIE --- src/python/pants/backend/python/util_rules/pex_cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index e308b1f76ff..0f81c35bf24 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -73,7 +73,7 @@ def default_known_versions(cls): ] use_scie_distribution = BoolOption( - default=False, + default=True, help=softwrap( """ Use the SCIE-packaged distribution of the PEX tool instead of the PEX distribution. From 8d33e5cb223b54f830acffaa52c13ed16245bb98 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Tue, 7 Jan 2025 11:01:03 +0000 Subject: [PATCH 09/14] don't include PEX env vars with the SCIE --- .../backend/python/util_rules/pex_cli.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index 0f81c35bf24..244e0268470 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -276,17 +276,22 @@ async def setup_pex_cli_process( complete_pex_env = pex_env.in_sandbox(working_directory=None) normalized_argv: tuple[str, ...] if pex_cli_tool.is_scie: + # TODO: Is there a neeed to select `pex3`? normalized_argv = (pex_cli_tool.exe, "pex", *args) else: normalized_argv = complete_pex_env.create_argv(pex_cli_tool.exe, *args) - env = { - **complete_pex_env.environment_dict(python=bootstrap_python), - **python_native_code.subprocess_env_vars, - **(request.extra_env or {}), # type: ignore[dict-item] - # If a subcommand is used, we need to use the `pex3` console script. - **({"PEX_SCRIPT": "pex3"} if request.subcommand else {}), - } + # Build the environment for running the program. + env = {} + if not pex_cli_tool.is_scie: + env.update(complete_pex_env.environment_dict(python=bootstrap_python)) + env.update(python_native_code.subprocess_env_vars) + if request.extra_env: + env.update(request.extra_env) # type: ignore[dict-item] + + # If a subcommand is used, we need to use the `pex3` console script. + if request.subcommand: + env["PEX_SCRIPT"] = "pex3" # TODO: This may require selecting "pex3" from the SCIE instead. return Process( normalized_argv, From a5abf61f766088f289852fe0e910d378b26063f9 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Tue, 7 Jan 2025 11:18:59 +0000 Subject: [PATCH 10/14] mypy --- src/python/pants/backend/python/util_rules/pex_cli.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index 244e0268470..7478e5d881c 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -282,12 +282,12 @@ async def setup_pex_cli_process( normalized_argv = complete_pex_env.create_argv(pex_cli_tool.exe, *args) # Build the environment for running the program. - env = {} + env: dict[str, str] = {} if not pex_cli_tool.is_scie: env.update(complete_pex_env.environment_dict(python=bootstrap_python)) env.update(python_native_code.subprocess_env_vars) if request.extra_env: - env.update(request.extra_env) # type: ignore[dict-item] + env.update(request.extra_env) # If a subcommand is used, we need to use the `pex3` console script. if request.subcommand: From 80a213eea4c1826b1e3b98c901ee12d6c03e362b Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Tue, 7 Jan 2025 12:51:28 +0000 Subject: [PATCH 11/14] do call environment_dict for SCIE --- .../goals/run_python_requirement_integration_test.py | 6 ++++-- src/python/pants/backend/python/util_rules/pex_cli.py | 2 ++ src/python/pants/testutil/pants_integration_test.py | 7 ++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/python/pants/backend/python/goals/run_python_requirement_integration_test.py b/src/python/pants/backend/python/goals/run_python_requirement_integration_test.py index a3d29359441..1c96dcf113c 100644 --- a/src/python/pants/backend/python/goals/run_python_requirement_integration_test.py +++ b/src/python/pants/backend/python/goals/run_python_requirement_integration_test.py @@ -15,16 +15,18 @@ def test_run_script_from_3rdparty_dist_issue_13747() -> None: """ ), } - with setup_tmpdir(sources) as tmpdir: + with setup_tmpdir(sources, cleanup=False) as tmpdir: SAY = "moooo" args = [ "--backend-packages=pants.backend.python", f"--source-root-patterns=['/{tmpdir}/src']", + "-ldebug", + "--keep-sandboxes=on_failure", "run", f"{tmpdir}/src:cowsay", "--", SAY, ] - result = run_pants(args) + result = run_pants(args, cleanup=False) result.assert_success() assert SAY in result.stdout.strip() diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index 7478e5d881c..beaaea2d7ed 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -285,6 +285,8 @@ async def setup_pex_cli_process( env: dict[str, str] = {} if not pex_cli_tool.is_scie: env.update(complete_pex_env.environment_dict(python=bootstrap_python)) + else: + env.update(complete_pex_env.environment_dict(python=None)) env.update(python_native_code.subprocess_env_vars) if request.extra_env: env.update(request.extra_env) diff --git a/src/python/pants/testutil/pants_integration_test.py b/src/python/pants/testutil/pants_integration_test.py index c1889b92844..689b32fc276 100644 --- a/src/python/pants/testutil/pants_integration_test.py +++ b/src/python/pants/testutil/pants_integration_test.py @@ -224,6 +224,7 @@ def run_pants( config: Mapping | None = None, extra_env: Env | None = None, stdin_data: bytes | str | None = None, + cleanup: bool = True, ) -> PantsResult: """Runs Pants in a subprocess. @@ -235,7 +236,7 @@ def run_pants( :param extra_env: Set these env vars in the Pants process's environment. :param stdin_data: Make this data available to be read from the process's stdin. """ - with temporary_workdir() as workdir: + with temporary_workdir(cleanup=cleanup) as workdir: return run_pants_with_workdir( command, workdir=workdir, @@ -254,7 +255,7 @@ def run_pants( @contextmanager def setup_tmpdir( - files: Mapping[str, str], raw_files: Mapping[str, bytes] | None = None + files: Mapping[str, str], raw_files: Mapping[str, bytes] | None = None, cleanup: bool = True ) -> Iterator[str]: """Create a temporary directory with the given files and return the tmpdir (relative to the build root). @@ -273,7 +274,7 @@ def setup_tmpdir( raw_files = raw_files or {} - with temporary_dir(root_dir=get_buildroot()) as tmpdir: + with temporary_dir(root_dir=get_buildroot(), cleanup=cleanup) as tmpdir: rel_tmpdir = os.path.relpath(tmpdir, get_buildroot()) for path, content in files.items(): safe_file_dump( From fdd0c3fbf74546818f045c6984dfc69be2f42ec7 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Wed, 8 Jan 2025 11:12:44 +0000 Subject: [PATCH 12/14] checkpoint for export changes --- src/python/pants/backend/python/goals/export.py | 15 ++++++++++----- .../pants/backend/python/goals/export_test.py | 11 ++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/python/pants/backend/python/goals/export.py b/src/python/pants/backend/python/goals/export.py index 24294743312..86339c7e4ae 100644 --- a/src/python/pants/backend/python/goals/export.py +++ b/src/python/pants/backend/python/goals/export.py @@ -292,13 +292,18 @@ async def do_export( ): pex_args.insert(-1, "--non-hermetic-scripts") + args_for_pex_invocation: tuple[str, ...] + if pex_cli_tool.is_scie: + args_for_pex_invocation = ( + os.path.join(tmpdir_under_digest_root, pex_cli_tool.exe), + "pex", + *pex_args, + ) + else: + args_for_pex_invocation = complete_pex_env.create_argv(pex_args) post_processing_cmds = [ PostProcessingCommand( - complete_pex_env.create_argv( - os.path.join(tmpdir_under_digest_root, pex_cli_tool.exe), - *(["pex"] if pex_cli_tool.is_scie else []), - *pex_args, - ), + args_for_pex_invocation, { **complete_pex_env.environment_dict(python=requirements_pex.python), "PEX_MODULE": "pex.tools", diff --git a/src/python/pants/backend/python/goals/export_test.py b/src/python/pants/backend/python/goals/export_test.py index 93673a6f580..cc0cbaab277 100644 --- a/src/python/pants/backend/python/goals/export_test.py +++ b/src/python/pants/backend/python/goals/export_test.py @@ -146,16 +146,17 @@ def test_export_venv_new_codepath( # don't easily know here, so we ignore it in this comparison. # The second arg is expected to be tmpdir/./pex. - tmpdir, pex_pex_name = os.path.split(os.path.normpath(ppc0.argv[1])) - assert pex_pex_name == "pex" + tmpdir, pex_name = os.path.split(os.path.normpath(ppc0.argv[2])) + assert pex_name.startswith("pex") # May either be either a Pex SCIE or PEX! + assert pex_name == "pex" assert re.match(r"\{digest_root\}/\.[0-9a-f]{32}\.tmp", tmpdir) # The third arg is expected to be tmpdir/{resolve}.pex. - req_pex_dir, req_pex_name = os.path.split(ppc0.argv[2]) + req_pex_dir, req_pex_name = os.path.split(ppc0.argv[3]) assert req_pex_dir == tmpdir assert req_pex_name == f"{resolve}.pex" - assert ppc0.argv[3:7] == ( + assert ppc0.argv[4:8] == ( "venv", "--pip", "--collisions-ok", @@ -164,7 +165,7 @@ def test_export_venv_new_codepath( if py_hermetic_scripts: assert "--non-hermetic-scripts" not in ppc0.argv else: - assert ppc0.argv[7] == "--non-hermetic-scripts" + assert ppc0.argv[8] == "--non-hermetic-scripts" assert ppc0.argv[-1] == "{digest_root}" assert ppc0.extra_env["PEX_MODULE"] == "pex.tools" assert ppc0.extra_env.get("PEX_ROOT") is not None From a72d92b27db3871a620bd9c20073472f0cd9e230 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Wed, 8 Jan 2025 11:13:34 +0000 Subject: [PATCH 13/14] debug info --- src/python/pants/backend/terraform/testutil.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python/pants/backend/terraform/testutil.py b/src/python/pants/backend/terraform/testutil.py index c38391a989e..fc09962ad24 100644 --- a/src/python/pants/backend/terraform/testutil.py +++ b/src/python/pants/backend/terraform/testutil.py @@ -56,7 +56,7 @@ def rule_runner_with_auto_approve() -> RuleRunner: preserve_tmpdirs=True, ) # We have to forward "--auto-approve" to TF because `mock_console` is noninteractive - rule_runner.set_options(["--download-terraform-args='-auto-approve'"]) + rule_runner.set_options(["--download-terraform-args='-auto-approve'", "--keep-sandboxes=on_failure", "-ldebug"]) return rule_runner From f09d75a4eb9fc2b02231b9fecb972543526eab59 Mon Sep 17 00:00:00 2001 From: Tom Dyas Date: Wed, 8 Jan 2025 11:13:39 +0000 Subject: [PATCH 14/14] checkpoint --- .../backend/python/util_rules/pex_cli.py | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/python/pants/backend/python/util_rules/pex_cli.py b/src/python/pants/backend/python/util_rules/pex_cli.py index beaaea2d7ed..f5071b427c6 100644 --- a/src/python/pants/backend/python/util_rules/pex_cli.py +++ b/src/python/pants/backend/python/util_rules/pex_cli.py @@ -213,6 +213,9 @@ async def setup_pex_cli_process( pex_cli_tool: PexCliTool, python_setup: PythonSetup, ) -> Process: + # if "Find interpreter for constraints" in request.description: + # raise ValueError(f"request={request}; pex_env={pex_env}") + tmpdir = ".tmp" gets: List[Get] = [Get(Digest, CreateDigest([Directory(tmpdir)]))] @@ -283,10 +286,11 @@ async def setup_pex_cli_process( # Build the environment for running the program. env: dict[str, str] = {} - if not pex_cli_tool.is_scie: - env.update(complete_pex_env.environment_dict(python=bootstrap_python)) - else: - env.update(complete_pex_env.environment_dict(python=None)) + env.update(complete_pex_env.environment_dict(python=bootstrap_python)) + # if not pex_cli_tool.is_scie: + # env.update(complete_pex_env.environment_dict(python=bootstrap_python)) + # else: + # env.update(complete_pex_env.environment_dict(python=None)) env.update(python_native_code.subprocess_env_vars) if request.extra_env: env.update(request.extra_env) @@ -295,7 +299,10 @@ async def setup_pex_cli_process( if request.subcommand: env["PEX_SCRIPT"] = "pex3" # TODO: This may require selecting "pex3" from the SCIE instead. - return Process( + # if "Find interpreter for constraints" in request.description: + # raise ValueError(f"normalized_argv={normalized_argv}; env={env}") + + process = Process( normalized_argv, description=request.description, input_digest=input_digest, @@ -308,6 +315,12 @@ async def setup_pex_cli_process( cache_scope=request.cache_scope, ) + # if "Find interpreter for constraints" in request.description: + # raise ValueError(f"process={process}") + print(f"PEX CLI: process={process}") + + return process + def maybe_log_pex_stderr(stderr: bytes, pex_verbosity: int) -> None: """Forward Pex's stderr to a Pants logger if conditions are met."""