-
Notifications
You must be signed in to change notification settings - Fork 28
/
pyproject.toml
129 lines (114 loc) · 3.93 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[tool.poetry]
name = "RecTools"
version = "0.6.0"
description = "An easy-to-use Python library for building recommendation systems"
license = "Apache-2.0"
authors = [
"Emiliy Feldman <[email protected]>",
"Daria Tikhonovich <[email protected]>",
"Daniil Potapov <[email protected]>",
"Ildar Safilo <[email protected]>",
"Alexander Butenko <[email protected]>",
"Julia Karamnova <[email protected]>",
"Artem Senin <[email protected]>",
"Mikhail Khasykov <[email protected]>",
"Mike Sokolov <[email protected]>",
"Andrey Semenov <[email protected]>",
]
maintainers = [
"Emiliy Feldman <[email protected]>",
"Daria Tikhonovich <[email protected]>",
]
readme = "README.md"
homepage = "https://github.com/MobileTeleSystems/RecTools"
repository = "https://github.com/MobileTeleSystems/RecTools"
documentation = "https://rectools.readthedocs.io"
keywords = [
"recsys",
"recommendation systems",
"machine learning",
"AI",
"personalization",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Libraries :: Python Modules",
"Intended Audience :: Science/Research",
"Intended Audience :: Education",
"Operating System :: Unix",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
]
packages = [
{ include = "rectools", from = "." },
]
[tool.poetry.dependencies]
python = ">=3.8.1, <3.13"
numpy = [
{version = ">=1.19.5, <2.0.0", python = "3.8"}, # for compatibility with scipy
{version = ">=1.22, <2.0.0", python = ">=3.9, <3.12"},
{version = ">=1.26, <2.0.0", python = ">=3.12"} # numpy <1.26 fails to install on Python 3.12
]
pandas = ">=1.5.0, <3.0.0"
scipy = [
{version = "^1.9.1, <1.11", python = "3.8"}, # since 1.11 scipy doesn't support python 3.8
{version = "^1.10.1, <1.13", python = ">=3.9"}, # in 1.13 were introduced significant changes breaking our logic
]
tqdm = "^4.27.0"
implicit = "^0.7.1"
attrs = ">=19.1.0,<24.0.0"
typeguard = "^4.1.0"
# The latest released version of lightfm is 1.17 and it's not compatible with PEP-517 installers (like latest poetry versions).
# So we use the latest commit from the master branch.
# Will update to the latest version when it's released.
lightfm = {git = "https://github.com/lyst/lightfm", rev = "0c9c31e", python = "<3.12", optional = true}
nmslib = {version = "^2.0.4", python = "<3.11", optional = true}
# The latest torch version available for MacOSX + x86_64 is 2.2.2
torch = [
{version = ">=1.6.0, <2.3.0", markers = "sys_platform == 'darwin' and platform_machine == 'x86_64'", optional = true},
{version = ">=1.6.0, <3.0.0", optional = true}
]
pytorch-lightning = {version = ">=1.6.0, <3.0.0", optional = true}
ipywidgets = {version = ">=7.7,<8.2", optional = true}
plotly = {version="^5.22.0", optional = true}
[tool.poetry.extras]
lightfm = ["lightfm"]
nmslib = ["nmslib"]
torch = ["torch", "pytorch-lightning"]
visuals = ["ipywidgets", "plotly"]
all = [
"lightfm",
"nmslib",
"torch", "pytorch-lightning",
"ipywidgets", "plotly",
]
[tool.poetry.group.dev.dependencies]
black = "24.4.2"
isort = "5.13.2"
pylint = "3.1.0"
mypy = "1.10.0"
flake8 = "7.0.0"
bandit = "1.7.8"
pytest = "8.1.1"
radon = "6.0.1"
coverage = "7.5.0"
autopep8 = "2.1.0"
codespell = "2.2.6"
pytest-subtests = "0.12.1"
flake8-docstrings = "1.7.0"
pep8-naming = "0.13.3"
pytest-cov = "5.0.0"
pytest-mock = "3.14.0"
[tool.black]
line-length = 120
target-version = ["py38", "py39", "py310", "py311", "py312"]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"