From 59533029edec5079f96b82349c81c16c34c58506 Mon Sep 17 00:00:00 2001 From: Charles Carlson Date: Sun, 17 Aug 2025 10:55:57 -0700 Subject: [PATCH 1/3] adds PySpark 4.0.0 --- noxfile.py | 2 +- pyproject.toml | 2 +- uv.lock | 53 ++++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/noxfile.py b/noxfile.py index dae24b3..2432e71 100644 --- a/noxfile.py +++ b/noxfile.py @@ -95,7 +95,7 @@ # 3.12 support was added in sympy 1.12.1 but internal cap is at 1.9 #1797 ( "3.12-newest", - "3.12", "==3.5.1", "==1.9", "==2.2.2", + "3.12", "==4.0.0", "==1.9", "==2.3.1", "==1.26.4", "==1.14.1", "==1.26.1", "==16.1.0", ), # fmt: on diff --git a/pyproject.toml b/pyproject.toml index 7ccf96f..bc125b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ dependencies = [ "pyarrow >=18.0.0,<19", "pyspark[sql] >=3.3.1,<3.6 ; python_version < '3.11'", "pyspark[sql] >=3.4.0,<3.6 ; python_version == '3.11'", - "pyspark[sql] >=3.5.0,<3.6 ; python_version >= '3.12'", + "pyspark[sql] >=3.5.0,<5 ; python_version >= '3.12'", "randomgen >=1.20.0,<=1.26.0 ; python_version < '3.10'", "randomgen >=1.23.0,<=1.26.0 ; python_version == '3.10'", "randomgen >=1.26.0,<=2 ; python_version >= '3.11'", diff --git a/uv.lock b/uv.lock index 8a42394..36d93ab 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.9, <3.13" resolution-markers = [ "python_full_version >= '3.12'", @@ -1509,11 +1509,28 @@ wheels = [ name = "py4j" version = "0.10.9.7" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version < '3.10'", +] sdist = { url = "https://files.pythonhosted.org/packages/1e/f2/b34255180c72c36ff7097f7c2cdca02abcbd89f5eebf7c7c41262a9a0637/py4j-0.10.9.7.tar.gz", hash = "sha256:0b6e5315bb3ada5cf62ac651d107bb2ebc02def3dee9d9548e3baac644ea8dbb", size = 1508234, upload-time = "2022-08-12T22:49:09.792Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/10/30/a58b32568f1623aaad7db22aa9eafc4c6c194b429ff35bdc55ca2726da47/py4j-0.10.9.7-py2.py3-none-any.whl", hash = "sha256:85defdfd2b2376eb3abf5ca6474b51ab7e0de341c75a02f46dc9b5976f5a5c1b", size = 200481, upload-time = "2022-08-12T22:49:07.05Z" }, ] +[[package]] +name = "py4j" +version = "0.10.9.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", +] +sdist = { url = "https://files.pythonhosted.org/packages/38/31/0b210511177070c8d5d3059556194352e5753602fa64b85b7ab81ec1a009/py4j-0.10.9.9.tar.gz", hash = "sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879", size = 761089, upload-time = "2025-01-15T03:53:18.624Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/db/ea0203e495be491c85af87b66e37acfd3bf756fd985f87e46fc5e3bf022c/py4j-0.10.9.9-py2.py3-none-any.whl", hash = "sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533", size = 203008, upload-time = "2025-01-15T03:53:15.648Z" }, +] + [[package]] name = "pyarrow" version = "18.1.0" @@ -1761,17 +1778,40 @@ wheels = [ name = "pyspark" version = "3.5.6" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version < '3.10'", +] dependencies = [ - { name = "py4j" }, + { name = "py4j", version = "0.10.9.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/62/36e50d38e5fe158e97cddec983b44f9417b1e205b02320e3c463b5f802fa/pyspark-3.5.6.tar.gz", hash = "sha256:f8b1c4360e41ab398c64904fae08740503bcb6bd389457d659fa6d9f2952cc48", size = 317359167, upload-time = "2025-05-27T08:24:20.82Z" } [package.optional-dependencies] sql = [ - { name = "numpy" }, + { name = "numpy", marker = "python_full_version < '3.12'" }, { name = "pandas", version = "1.5.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "pyarrow", marker = "python_full_version < '3.12'" }, +] + +[[package]] +name = "pyspark" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", +] +dependencies = [ + { name = "py4j", version = "0.10.9.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/0e/5b38d51f1b1c2618cccfbf35093268665af9a3bdb493e5a3ecd991def633/pyspark-4.0.0.tar.gz", hash = "sha256:38db1b4f6095a080d7605e578d775528990e66dc326311d93e94a71cfc24e5a5", size = 434132212, upload-time = "2025-05-23T03:29:33.916Z" } + +[package.optional-dependencies] +sql = [ + { name = "numpy", marker = "python_full_version >= '3.12'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "pyarrow" }, + { name = "pyarrow", marker = "python_full_version >= '3.12'" }, ] [[package]] @@ -2357,7 +2397,8 @@ dependencies = [ { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "parameterized" }, { name = "pyarrow" }, - { name = "pyspark", extra = ["sql"] }, + { name = "pyspark", version = "3.5.6", source = { registry = "https://pypi.org/simple" }, extra = ["sql"], marker = "python_full_version < '3.12'" }, + { name = "pyspark", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, extra = ["sql"], marker = "python_full_version >= '3.12'" }, { name = "pytest" }, { name = "randomgen", version = "1.26.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "randomgen", version = "2.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, @@ -2428,7 +2469,7 @@ requires-dist = [ { name = "pyarrow", specifier = ">=18.0.0,<19" }, { name = "pyspark", extras = ["sql"], marker = "python_full_version < '3.11'", specifier = ">=3.3.1,<3.6" }, { name = "pyspark", extras = ["sql"], marker = "python_full_version == '3.11.*'", specifier = ">=3.4.0,<3.6" }, - { name = "pyspark", extras = ["sql"], marker = "python_full_version >= '3.12'", specifier = ">=3.5.0,<3.6" }, + { name = "pyspark", extras = ["sql"], marker = "python_full_version >= '3.12'", specifier = ">=3.5.0,<5" }, { name = "pytest", specifier = ">=7.3.1,<8" }, { name = "randomgen", marker = "python_full_version < '3.10'", specifier = ">=1.20.0,<=1.26.0" }, { name = "randomgen", marker = "python_full_version == '3.10.*'", specifier = ">=1.23.0,<=1.26.0" }, From 1dedd7c748aeb79d6334b80d05c23eaf95a63af0 Mon Sep 17 00:00:00 2001 From: Charles Carlson Date: Thu, 21 Aug 2025 20:01:33 -0400 Subject: [PATCH 2/3] use Python 3.12 to test PySpark 4.0.0 --- .python-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.python-version b/.python-version index a02597f..fdcfcfd 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.9 \ No newline at end of file +3.12 \ No newline at end of file From 11725762e7f32d441fd7c01abf890f557ffba06c Mon Sep 17 00:00:00 2001 From: Charles Carlson Date: Fri, 17 Oct 2025 14:04:12 -0400 Subject: [PATCH 3/3] current work save --- noxfile.py | 50 ++++++++++++++-------------- pyproject.toml | 22 ++++++++----- src/tmlt/core/random/rng.py | 1 + uv.lock | 66 ++++++++++++++++++++++++++++--------- 4 files changed, 90 insertions(+), 49 deletions(-) diff --git a/noxfile.py b/noxfile.py index e8a9360..732e68c 100644 --- a/noxfile.py +++ b/noxfile.py @@ -47,27 +47,27 @@ def is_arm_mac(): DEPENDENCY_MATRIX = [ - DependencyConfiguration( - id="3.10-oldest", - python="3.10", - packages={ - "pyspark[sql]": "==3.3.1" if not is_mac() else "==3.5.0", - "sympy": "==1.8", - "pandas": "==1.4.0", - "numpy": "==1.23.2", - "scipy": "==1.8.0", - "randomgen": "==1.23.0", - "pyarrow": "==14.0.1", - }, - ), + #DependencyConfiguration( + # id="3.10-oldest", + # python="3.10", + # packages={ + # "pyspark[sql]": "==3.3.1" if not is_mac() else "==3.5.0", + # "sympy": "==1.8", + # "pandas": "==1.4.0", + # "numpy": "==1.23.2", + # "scipy": "==1.8.0", + # "randomgen": "==1.23.0", + # "pyarrow": "==14.0.1", + # }, + #), DependencyConfiguration( id="3.10-newest", python="3.10", packages={ - "pyspark[sql]": "==3.5.6", - "sympy": "==1.9", - "pandas": "==1.5.3", - "numpy": "==1.26.4", + "pyspark[sql]": "==4.0.1", + "sympy": "==1.12", + "pandas": "==2.3.3", + "numpy": "==2.2.6", "scipy": "==1.14.1", "randomgen": "==1.26.0", "pyarrow": "==16.1.0", @@ -90,10 +90,10 @@ def is_arm_mac(): id="3.11-newest", python="3.11", packages={ - "pyspark[sql]": "==3.5.6", - "sympy": "==1.9", - "pandas": "==1.5.3", - "numpy": "==1.26.4", + "pyspark[sql]": "==4.0.1", + "sympy": "==1.12", + "pandas": "==2.3.3", + "numpy": "==2.2.6", "scipy": "==1.14.1", "randomgen": "==1.26.1", "pyarrow": "==16.1.0", @@ -117,10 +117,10 @@ def is_arm_mac(): id="3.12-newest", python="3.12", packages={ - "pyspark[sql]": "==3.5.6", - "sympy": "==1.9", - "pandas": "==2.2.2", - "numpy": "==1.26.4", + "pyspark[sql]": "==4.0.1", + "sympy": "==1.12", + "pandas": "==2.3.3", + "numpy": "==2.2.6", "scipy": "==1.14.1", "randomgen": "==1.26.1", "pyarrow": "==16.1.0", diff --git a/pyproject.toml b/pyproject.toml index 9803610..ec08c40 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,16 +28,16 @@ keywords = [ requires-python = ">=3.10,<3.13" dependencies = [ - "numpy >=1.23.2,<2 ; python_version < '3.12'", - "numpy >=1.26.0,<2 ; python_version >= '3.12'", - "pandas >=1.4.0,<2 ; python_version < '3.11'", - "pandas >=1.5.0,<2 ; python_version == '3.11'", + "numpy >=1.23.2,<=2.2.6 ; python_version < '3.12'", + "numpy >=1.26.0,<=2.2.6 ; python_version >= '3.12'", + "pandas >=1.4.0,<3 ; python_version < '3.11'", + "pandas >=1.5.0,<3 ; python_version == '3.11'", "pandas >=2.2.0,<3 ; python_version >= '3.12'", "pyarrow >=18.0.0,<19", - "pyspark[sql] >=3.3.1,<3.6 ; python_version < '3.11' and sys_platform != 'darwin'", - "pyspark[sql] >=3.4.0,<3.6 ; python_version == '3.11' and sys_platform != 'darwin'", - "pyspark[sql] >=3.5.0,<3.6 ; python_version >= '3.12' and sys_platform != 'darwin'", - "pyspark[sql] >=3.5.0,<3.6 ; sys_platform == 'darwin'", + "pyspark[sql] >=3.3.1,<5 ; python_version < '3.11' and sys_platform != 'darwin'", + "pyspark[sql] >=3.4.0,<5 ; python_version == '3.11' and sys_platform != 'darwin'", + "pyspark[sql] >=3.5.0,<5; python_version >= '3.12' and sys_platform != 'darwin'", + "pyspark[sql] >=3.5.0,<5 ; sys_platform == 'darwin'", "randomgen >=1.20.0,<=1.26.0 ; python_version < '3.10'", "randomgen >=1.23.0,<=1.26.0 ; python_version == '3.10'", "randomgen >=1.26.0,<=2 ; python_version >= '3.11'", @@ -99,6 +99,12 @@ scripting = [ "nox >=2024.03.02", "tmlt.nox_utils" ] +dev = [ + "ruff>=0.5.0", # Added to support numpy migration. +] + +[tool.ruff.lint] +select = ["NPY201"] [tool.uv.sources] # Switch which of these is commented out to test local changes to nox-utils: diff --git a/src/tmlt/core/random/rng.py b/src/tmlt/core/random/rng.py index 1d07264..ff7d2db 100644 --- a/src/tmlt/core/random/rng.py +++ b/src/tmlt/core/random/rng.py @@ -9,6 +9,7 @@ import numpy as np from randomgen.rdrand import RDRAND # pylint: disable=no-name-in-module from randomgen.wrapper import UserBitGenerator # pylint: disable=no-name-in-module +"""Can this be switched to something else to avoid import errors?""" try: _core_privacy_prng = np.random.Generator(RDRAND()) diff --git a/uv.lock b/uv.lock index 1363524..687b601 100644 --- a/uv.lock +++ b/uv.lock @@ -1186,9 +1186,10 @@ name = "py4j" version = "0.10.9.7" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", + "python_full_version == '3.11.*' and sys_platform != 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform != 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", ] sdist = { url = "https://files.pythonhosted.org/packages/1e/f2/b34255180c72c36ff7097f7c2cdca02abcbd89f5eebf7c7c41262a9a0637/py4j-0.10.9.7.tar.gz", hash = "sha256:0b6e5315bb3ada5cf62ac651d107bb2ebc02def3dee9d9548e3baac644ea8dbb", size = 1508234, upload-time = "2022-08-12T22:49:09.792Z" } wheels = [ @@ -1200,7 +1201,8 @@ name = "py4j" version = "0.10.9.9" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.12' and sys_platform != 'darwin'", + "python_full_version >= '3.12' and sys_platform == 'darwin'", ] sdist = { url = "https://files.pythonhosted.org/packages/38/31/0b210511177070c8d5d3059556194352e5753602fa64b85b7ab81ec1a009/py4j-0.10.9.9.tar.gz", hash = "sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879", size = 761089, upload-time = "2025-01-15T03:53:18.624Z" } wheels = [ @@ -1425,9 +1427,10 @@ name = "pyspark" version = "3.5.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", + "python_full_version == '3.11.*' and sys_platform != 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform != 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", ] dependencies = [ { name = "py4j", version = "0.10.9.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, @@ -1446,7 +1449,8 @@ name = "pyspark" version = "4.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.12' and sys_platform != 'darwin'", + "python_full_version >= '3.12' and sys_platform == 'darwin'", ] dependencies = [ { name = "py4j", version = "0.10.9.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, @@ -1656,6 +1660,32 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload-time = "2025-03-30T14:15:12.283Z" }, ] +[[package]] +name = "ruff" +version = "0.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/58/6ca66896635352812de66f71cdf9ff86b3a4f79071ca5730088c0cd0fc8d/ruff-0.14.1.tar.gz", hash = "sha256:1dd86253060c4772867c61791588627320abcb6ed1577a90ef432ee319729b69", size = 5513429, upload-time = "2025-10-16T18:05:41.766Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/39/9cc5ab181478d7a18adc1c1e051a84ee02bec94eb9bdfd35643d7c74ca31/ruff-0.14.1-py3-none-linux_armv6l.whl", hash = "sha256:083bfc1f30f4a391ae09c6f4f99d83074416b471775b59288956f5bc18e82f8b", size = 12445415, upload-time = "2025-10-16T18:04:48.227Z" }, + { url = "https://files.pythonhosted.org/packages/ef/2e/1226961855ccd697255988f5a2474890ac7c5863b080b15bd038df820818/ruff-0.14.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f6fa757cd717f791009f7669fefb09121cc5f7d9bd0ef211371fad68c2b8b224", size = 12784267, upload-time = "2025-10-16T18:04:52.515Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ea/fd9e95863124ed159cd0667ec98449ae461de94acda7101f1acb6066da00/ruff-0.14.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d6191903d39ac156921398e9c86b7354d15e3c93772e7dbf26c9fcae59ceccd5", size = 11781872, upload-time = "2025-10-16T18:04:55.396Z" }, + { url = "https://files.pythonhosted.org/packages/1e/5a/e890f7338ff537dba4589a5e02c51baa63020acfb7c8cbbaea4831562c96/ruff-0.14.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed04f0e04f7a4587244e5c9d7df50e6b5bf2705d75059f409a6421c593a35896", size = 12226558, upload-time = "2025-10-16T18:04:58.166Z" }, + { url = "https://files.pythonhosted.org/packages/a6/7a/8ab5c3377f5bf31e167b73651841217542bcc7aa1c19e83030835cc25204/ruff-0.14.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5c9e6cf6cd4acae0febbce29497accd3632fe2025c0c583c8b87e8dbdeae5f61", size = 12187898, upload-time = "2025-10-16T18:05:01.455Z" }, + { url = "https://files.pythonhosted.org/packages/48/8d/ba7c33aa55406955fc124e62c8259791c3d42e3075a71710fdff9375134f/ruff-0.14.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fa2458527794ecdfbe45f654e42c61f2503a230545a91af839653a0a93dbc6", size = 12939168, upload-time = "2025-10-16T18:05:04.397Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c2/70783f612b50f66d083380e68cbd1696739d88e9b4f6164230375532c637/ruff-0.14.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:39f1c392244e338b21d42ab29b8a6392a722c5090032eb49bb4d6defcdb34345", size = 14386942, upload-time = "2025-10-16T18:05:07.102Z" }, + { url = "https://files.pythonhosted.org/packages/48/44/cd7abb9c776b66d332119d67f96acf15830d120f5b884598a36d9d3f4d83/ruff-0.14.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7382fa12a26cce1f95070ce450946bec357727aaa428983036362579eadcc5cf", size = 13990622, upload-time = "2025-10-16T18:05:09.882Z" }, + { url = "https://files.pythonhosted.org/packages/eb/56/4259b696db12ac152fe472764b4f78bbdd9b477afd9bc3a6d53c01300b37/ruff-0.14.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0bf2be3ae8521e1093a487c4aa3b455882f139787770698530d28ed3fbb37c", size = 13431143, upload-time = "2025-10-16T18:05:13.46Z" }, + { url = "https://files.pythonhosted.org/packages/e0/35/266a80d0eb97bd224b3265b9437bd89dde0dcf4faf299db1212e81824e7e/ruff-0.14.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabcaa9ccf8089fb4fdb78d17cc0e28241520f50f4c2e88cb6261ed083d85151", size = 13132844, upload-time = "2025-10-16T18:05:16.1Z" }, + { url = "https://files.pythonhosted.org/packages/65/6e/d31ce218acc11a8d91ef208e002a31acf315061a85132f94f3df7a252b18/ruff-0.14.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:747d583400f6125ec11a4c14d1c8474bf75d8b419ad22a111a537ec1a952d192", size = 13401241, upload-time = "2025-10-16T18:05:19.395Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b5/dbc4221bf0b03774b3b2f0d47f39e848d30664157c15b965a14d890637d2/ruff-0.14.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5a6e74c0efd78515a1d13acbfe6c90f0f5bd822aa56b4a6d43a9ffb2ae6e56cd", size = 12132476, upload-time = "2025-10-16T18:05:22.163Z" }, + { url = "https://files.pythonhosted.org/packages/98/4b/ac99194e790ccd092d6a8b5f341f34b6e597d698e3077c032c502d75ea84/ruff-0.14.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:0ea6a864d2fb41a4b6d5b456ed164302a0d96f4daac630aeba829abfb059d020", size = 12139749, upload-time = "2025-10-16T18:05:25.162Z" }, + { url = "https://files.pythonhosted.org/packages/47/26/7df917462c3bb5004e6fdfcc505a49e90bcd8a34c54a051953118c00b53a/ruff-0.14.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0826b8764f94229604fa255918d1cc45e583e38c21c203248b0bfc9a0e930be5", size = 12544758, upload-time = "2025-10-16T18:05:28.018Z" }, + { url = "https://files.pythonhosted.org/packages/64/d0/81e7f0648e9764ad9b51dd4be5e5dac3fcfff9602428ccbae288a39c2c22/ruff-0.14.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cbc52160465913a1a3f424c81c62ac8096b6a491468e7d872cb9444a860bc33d", size = 13221811, upload-time = "2025-10-16T18:05:30.707Z" }, + { url = "https://files.pythonhosted.org/packages/c3/07/3c45562c67933cc35f6d5df4ca77dabbcd88fddaca0d6b8371693d29fd56/ruff-0.14.1-py3-none-win32.whl", hash = "sha256:e037ea374aaaff4103240ae79168c0945ae3d5ae8db190603de3b4012bd1def6", size = 12319467, upload-time = "2025-10-16T18:05:33.261Z" }, + { url = "https://files.pythonhosted.org/packages/02/88/0ee4ca507d4aa05f67e292d2e5eb0b3e358fbcfe527554a2eda9ac422d6b/ruff-0.14.1-py3-none-win_amd64.whl", hash = "sha256:59d599cdff9c7f925a017f6f2c256c908b094e55967f93f2821b1439928746a1", size = 13401123, upload-time = "2025-10-16T18:05:35.984Z" }, + { url = "https://files.pythonhosted.org/packages/b8/81/4b6387be7014858d924b843530e1b2a8e531846807516e9bea2ee0936bf7/ruff-0.14.1-py3-none-win_arm64.whl", hash = "sha256:e3b443c4c9f16ae850906b8d0a707b2a4c16f8d2f0a7fe65c475c5886665ce44", size = 12436636, upload-time = "2025-10-16T18:05:38.995Z" }, +] + [[package]] name = "scipy" version = "1.15.3" @@ -1994,6 +2024,9 @@ build = [ ci-tools = [ { name = "requests" }, ] +dev = [ + { name = "ruff" }, +] docs = [ { name = "pydata-sphinx-theme" }, { name = "sphinx" }, @@ -2034,17 +2067,17 @@ test = [ [package.metadata] requires-dist = [ - { name = "numpy", marker = "python_full_version < '3.12'", specifier = ">=1.23.2,<2" }, - { name = "numpy", marker = "python_full_version >= '3.12'", specifier = ">=1.26.0,<2" }, - { name = "pandas", marker = "python_full_version < '3.11'", specifier = ">=1.4.0,<2" }, - { name = "pandas", marker = "python_full_version == '3.11.*'", specifier = ">=1.5.0,<2" }, + { name = "numpy", marker = "python_full_version < '3.12'", specifier = ">=1.23.2,<=2.2.6" }, + { name = "numpy", marker = "python_full_version >= '3.12'", specifier = ">=1.26.0,<=2.2.6" }, + { name = "pandas", marker = "python_full_version < '3.11'", specifier = ">=1.4.0,<3" }, + { name = "pandas", marker = "python_full_version == '3.11.*'", specifier = ">=1.5.0,<3" }, { name = "pandas", marker = "python_full_version >= '3.12'", specifier = ">=2.2.0,<3" }, { name = "parameterized", specifier = ">=0.7.4,<0.8" }, { name = "pyarrow", specifier = ">=18.0.0,<19" }, - { name = "pyspark", extras = ["sql"], marker = "sys_platform == 'darwin'", specifier = ">=3.5.0,<3.6" }, - { name = "pyspark", extras = ["sql"], marker = "python_full_version < '3.11' and sys_platform != 'darwin'", specifier = ">=3.3.1,<3.6" }, - { name = "pyspark", extras = ["sql"], marker = "python_full_version == '3.11.*' and sys_platform != 'darwin'", specifier = ">=3.4.0,<3.6" }, - { name = "pyspark", extras = ["sql"], marker = "python_full_version >= '3.12' and sys_platform != 'darwin'", specifier = ">=3.5.0,<3.6" }, + { name = "pyspark", extras = ["sql"], marker = "sys_platform == 'darwin'", specifier = ">=3.5.0,<5" }, + { name = "pyspark", extras = ["sql"], marker = "python_full_version < '3.11' and sys_platform != 'darwin'", specifier = ">=3.3.1,<5" }, + { name = "pyspark", extras = ["sql"], marker = "python_full_version == '3.11.*' and sys_platform != 'darwin'", specifier = ">=3.4.0,<5" }, + { name = "pyspark", extras = ["sql"], marker = "python_full_version >= '3.12' and sys_platform != 'darwin'", specifier = ">=3.5.0,<5" }, { name = "pytest", specifier = ">=7.3.1,<8" }, { name = "randomgen", marker = "python_full_version < '3.10'", specifier = ">=1.20.0,<=1.26.0" }, { name = "randomgen", marker = "python_full_version == '3.10.*'", specifier = ">=1.23.0,<=1.26.0" }, @@ -2063,6 +2096,7 @@ audit = [{ name = "pip-audit", specifier = ">=2.9.0,<3" }] black = [{ name = "black", specifier = ">=23.3,<24" }] build = [{ name = "cibuildwheel", specifier = ">=2,<3" }] ci-tools = [{ name = "requests", specifier = ">=2.31.0,<3" }] +dev = [{ name = "ruff", specifier = ">=0.5.0" }] docs = [ { name = "pydata-sphinx-theme", specifier = ">=0.14.4,<15" }, { name = "sphinx", specifier = ">=7.2.0,<8" },