-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
172 lines (160 loc) · 4.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
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
[tool.ruff]
line-length = 100
target-version = "py38"
[tool.ruff.lint]
ignore = [
"A001", # Variable `Warning` is shadowing a Python builtin
"A002", # Argument `id` is shadowing a Python builtin
"A003", # Class attribute `list` is shadowing a Python builtin
"DJ008", # model does not have __str__ method
"F811", # redefinition of unused '...'
]
select = [
'A', # flake8-builtins
'B', # flake8-bugbear
'DJ', # flake8-django
'E', # pycodestyle - errors
'F', # pyflakes
'I', # isort
'W', # pycodestyle - warnings
]
fixable = ['I001'] # isort: imports are incorrectly sorted
[tool.ruff.lint.per-file-ignores]
"test_*.py" = ["B011"] # test files should have asserts
[tool.ruff.lint.isort]
split-on-trailing-comma = false
[tool.ruff.format]
skip-magic-trailing-comma = true
[tool.poetry]
name = "celus"
version = "7.0.0"
description = "web application for harvesting and visualization of usage data of electronic information sources"
authors = ["Beda Kosata <beda@bigdigdata.com>", "Stepan Henek <stepan@bigdigdata.com>"]
license = "MIT"
package-mode=false
[tool.poetry.dependencies]
python = "^3.8.9"
celery = "~5.4.0"
celus-nibbler = "~11.4.0"
celus-nigiri = "~3.0.2"
celus-pycounter = "~4.0.1"
colorlog = "^6.7.0"
dateparser = "^1.1.8"
diskcache = "^5.4.0"
dj-rest-auth = "~6.0.0"
Django = "~4.2.6"
django-allauth = "~0.58.2"
django-anymail = "^10.2"
django-cachalot = "~2.6.1"
django-celery-results = "~2.5.0"
django-colorfield = "^0.9.0"
django-impersonate = "~1.9.1"
django-import-export = "^3.0.2"
django-ipware = "^5.0.0"
django-modeltranslation = "~0.18.7"
django-mptt = "~0.14.0" # django-mptt 0.15 requires python 3.9
django-ntfy = "~0.1.1"
django-otp = "~1.5.0"
django-postgres-copy = "^2.7.0"
django-redis = "^5.4.0"
django-requestlogs = "^0.7.1"
django-reversion = "~5.0.4"
django-test-migrations = "^1.1.0"
djangorestframework = "~3.14.0"
djangorestframework-api-key = "^3.0.0"
drf-nested-routers = "~0.93.4"
hcube = "0.26.1"
isbnlib = "^3.10.3"
lz4 = "~4.3.2"
numpy = [ # keeps numpy-2.0.0 from being installed - pandas does not pin numpy correctly
{version = "^1.24.4", python = "3.8"},
{version = "^1.26.4", python = ">=3.9"}
]
openpyxl = "~3.1.2"
pandas = "^2.0.3" # pandas 2.1 requires python 3.9
Pillow = "^10.0.1"
prometheus-client = "^0.17.1"
psutil = "~5.9.4"
psycopg2-binary = "~2.9.1"
pydantic = "^2"
pyparsing = "^3.0.9"
python-dateutil = "^2.8.2"
python-decouple = "^3.3"
python-magic = "~0.4.15"
pytz = "*"
pyyaml = "^6.0.1"
redis = "^5"
requests = "^2.23.0"
rest-pandas = "~1.1.0"
semantic-version = "~2.10.0"
sentry-sdk = "^1.23.0"
toml = "^0.10.2"
XlsxWriter = "^3.0.3"
zstandard = "^0.21.0"
django-sesame = "^3.2.1"
websockets = "^12.0"
[tool.poetry.group.dev.dependencies]
clickhouse-driver = "0.2.6"
deptry = "^0.12.0"
dj-inmemorystorage = "^2.1.0"
django-debug-toolbar = "^4.0.0"
django-extensions = "^3.1.3"
django-querycount = "^0.8.3"
django-webtest = "^1.9.7"
factory-boy = "^3.2.1"
Faker = "^19.3.0"
filelock = "^3.12.2"
freezegun = "^1.2.2"
pre-commit = "^3.5.0" # pre-commit 3.6 requires python 3.9
pydot = "^1.4.2"
pyfakefs = "^5.0.0"
pytest = "^8.3.3"
pytest-cov = "^5.0.0"
pytest-django = "^4.2.0"
pytest-env = "^1.1.5"
pytest-random-order = "^1.1.0"
pytest-xdist = "^3.3.0"
requests-mock = "~1.11.0"
ruff = "^0.6.9"
sphinx = "^7.1.0" # sphinx 7.2 requires python 3.9
watchdog = {extras = ["watchmedo"], version = "^3.0.0"}
[tool.deptry]
known_first_party = ["test_scenarios"]
[tool.deptry.per_rule_ignores]
# some top level imports are not detected properly by deptry
DEP001 = [
"config",
]
# the following are used internally by django
DEP002 = [
'colorlog',
'django-anymail',
'django-ipware',
'django-ntfy',
'django-redis',
'django-test-migrations',
'lz4',
'numpy', # used through pandas
'Pillow',
'psycopg2-binary',
'python-decouple',
'pytz',
'sentry-sdk',
'toml',
# the following are used by wsserver
'aioredis',
'websockets',
]
# the following are used in tests only, so it does not matter if they are in dev deps only
DEP004 = [
"pytest",
"freezegun",
"faker",
"factory",
"clickhouse_driver", # used to setup the test tables
"filelock", # used to lock clickhouse test from writing over each other
"requests_mock"
]