-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
93 lines (78 loc) · 2.33 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
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "poprox-recommender"
description = "POPROX recommender implementation and infrastructure."
authors = [{ name = "Karl Higley", email = "khigley@umn.edu" }]
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
]
requires-python = ">= 3.11"
readme = "README.md"
license = { file = "LICENSE.md" }
dynamic = ["version"]
# Dependencies for the POPROX code — keep in sync w/ pixi.toml
# `dependencies` table.
dependencies = [
"lenskit>=2025.0.0a0",
"nltk>=3.8,<4",
"numpy>=1.26,<2",
"torch==2.*",
"smart_open==7.*",
"safetensors>=0.4,<1",
"transformers>=4.41,<5",
"colorlog >=6.8,<7",
"progress-api >=0.1.0a9,<0.2",
"enlighten >=1.12,<2",
"ipyparallel ~=8.0",
# this expresses the dep, but since we only install with pixi,
# it's ok that it can't be resolved.
"poprox-concepts",
]
[project.optional-dependencies]
# keep synchronized with feature.data.dependencies in pixi.toml
# we want these here so the doc build can work with the eval code
eval = ["docopt >=0.6", "pandas ~=2.0"]
[project.urls]
Homepage = "https://docs.poprox.ai"
GitHub = "https://github.com/CCRI-POPROX/poprox-recommender"
###### build and environment configurations ######
# basic hatch config
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.sdist]
only-include = ["src", "tests", "LICENSE.md", "README.md"]
[tool.hatch.version]
path = "src/poprox_recommender/__about__.py"
###### tooling configurations ######
# ruff — formatting and lints
[tool.ruff]
target-version = "py311"
line-length = 120
[tool.ruff.lint]
select = ["F", "I", "E"]
unfixable = [
# Don't touch unused imports
"F401",
]
[tool.ruff.lint.per-file-ignores]
# tests can have unused imports (for pytest fixtures)
"tests/**/*" = ["F401"]
[tool.ruff.isort]
known-first-party = ["poprox_*"]
[tool.ruff.flake8-tidy-imports]
ban-relative-imports = "all"
[tool.pyright]
exclude = [".pixi/", "node_modules"]
[tool.coverage.run]
source_pkgs = ["poprox_recommender", "tests"]
branch = true
parallel = true
omit = ["src/poprox_recommender/__about__.py"]
[tool.coverage.paths]
poprox_recommender = ["src/poprox_recommender"]
tests = ["tests"]
[tool.coverage.report]
exclude_lines = ["no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:"]