@@ -38,6 +38,7 @@ classifiers = [
3838 " Programming Language :: Python :: 3.10" ,
3939 " Programming Language :: Python :: 3.11" ,
4040 " Programming Language :: Python :: 3.12" ,
41+ " Programming Language :: Python :: 3.13" ,
4142 " Programming Language :: Python :: 3" ,
4243 " Topic :: Software Development :: Libraries :: Python Modules" ,
4344 " Intended Audience :: Science/Research" ,
@@ -52,13 +53,20 @@ packages = [
5253
5354
5455[tool .poetry .dependencies ]
55- python = " >=3.9, <3.13 "
56+ python = " >=3.9, <3.14 "
5657numpy = [
5758 {version = " >=1.22, <2.0.0" , python = " <3.12" },
58- {version = " >=1.26, <2.0.0" , python = " 3.12" } # numpy <1.26 fails to install on Python 3.12
59+ {version = " >=1.26, <2.0.0" , python = " 3.12" }, # numpy <1.26 fails to install on Python 3.12
60+ {version = " >=2.1.0, <3.0.0" , python = " >=3.13" } # numpy <2.1 fails to install on Python 3.13
61+ ]
62+ pandas = [
63+ {version = " >=1.5.0, <3.0.0" , python = " <3.13" },
64+ {version = " >=2.2.3, <3.0.0" , python = " >=3.13" } # pandas <2.2.3 fails to install on Python 3.13
65+ ]
66+ scipy = [
67+ {version = " ^1.10.1, <1.13" , python = " <3.10" }, # there is a bug in 1.13* https://github.com/scipy/scipy/issues/20670
68+ {version = " >=1.14.1, <2.0.0" , python = " >=3.10" } # scipy >=1.14.1 fails to install on Python 3.9
5969]
60- pandas = " >=1.5.0, <3.0.0"
61- scipy = " ^1.10.1, <1.13" # in 1.13 were introduced significant changes breaking our logic
6270tqdm = " ^4.27.0"
6371implicit = " ^0.7.1"
6472attrs = " >=19.1.0,<24.0.0"
@@ -76,16 +84,27 @@ nmslib-metabrainz = {version = "^2.1.3", python = ">=3.11, <3.13", optional = tr
7684
7785# The latest torch version available for MacOSX + x86_64 is 2.2.2
7886torch = [
79- {version = " >=1.6.0, <2.3.0" , markers = " sys_platform == 'darwin' and platform_machine == 'x86_64'" , optional = true },
80- {version = " >=1.6.0, <3.0.0" , optional = true }
87+ {version = " >=1.6.0, <2.3.0" , python = " <3.13" , markers = " sys_platform == 'darwin' and platform_machine == 'x86_64'" , optional = true },
88+ {version = " >=1.6.0, <3.0.0" , python = " <3.13" , optional = true },
89+ {version = " >=2.6.0, <3.0.0" , python = " >=3.13" , optional = true },
90+ ]
91+ pytorch-lightning = [
92+ {version = " >=1.6.0, <3.0.0" , python = " <3.13" , optional = true },
93+ {version = " >=2.5.1, <3.0.0" , python = " >=3.13" , optional = true },
8194]
82- pytorch-lightning = {version = " >=1.6.0, <3.0.0" , optional = true }
8395
8496ipywidgets = {version = " >=7.7,<8.2" , optional = true }
8597plotly = {version =" ^5.22.0" , optional = true }
8698nbformat = {version = " >=4.2.0" , optional = true }
87- cupy-cuda12x = {version = " ^13.3.0" , python = " <3.13" , optional = true }
88-
99+ cupy-cuda12x = [
100+ {version = " ^13.3.0" , python = " <3.13" , optional = true },
101+ {version = " ^13.4.0" , python = " >=3.13" , optional = true },
102+ ]
103+ # This is a dependency of cupy-cuda12x
104+ # poetry can't resolve appropriate version of fastrlock for Python 3.13
105+ # and cupy-cuda12x, so we add the version restriction here manually to avoid
106+ # installing older version of fastrlock which is incompatible with Python 3.13
107+ fastrlock = {version = " ^0.8.3" , optional = true }
89108
90109[tool .poetry .extras ]
91110lightfm = [" rectools-lightfm" ]
@@ -103,13 +122,13 @@ all = [
103122
104123
105124[tool .poetry .group .dev .dependencies ]
106- black = " 24.4.2 "
125+ black = " 24.10.0 "
107126isort = " 5.13.2"
108127pylint = " 3.1.0"
109128mypy = " 1.13.0"
110129flake8 = " 7.0.0"
111130bandit = " 1.7.8"
112- pytest = " 8.1.1 "
131+ pytest = " 8.3.3 "
113132radon = " 6.0.1"
114133coverage = " 7.5.0"
115134autopep8 = " 2.1.0"
@@ -122,10 +141,17 @@ pytest-mock = "3.14.0"
122141click = " 8.1.7"
123142gitpython = " 3.1.43"
124143
144+ [tool .poetry .group .docs ]
145+ optional = true
146+
147+ [tool .poetry .group .docs .dependencies ]
148+ sphinx = " 5.1.1"
149+ nbsphinx = " 0.8.9"
150+ sphinx-rtd-theme = " 1.0.0"
125151
126152[tool .black ]
127153line-length = 120
128- target-version = [" py39" , " py310" , " py311" , " py312" ]
154+ target-version = [" py39" , " py310" , " py311" , " py312" , " py313 " ]
129155
130156
131157[build-system ]
0 commit comments