-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
143 lines (131 loc) · 4.27 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
[tool]
[tool.poetry]
name = "pixelgen-pixelator"
version = "0.0.0"
homepage = "https://github.com/PixelgenTechnologies/pixelator"
repository = "https://github.com/PixelgenTechnologies/pixelator"
documentation = "https://software.pixelgen.com"
description = "A command-line tool and library to process and analyze sequencing data from Molecular Pixelation (MPX) assays."
authors = ["Pixelgen Technologies AB <[email protected]>",]
maintainers = ["Alvaro Martinez Barrio <[email protected]>"]
readme = "README.md"
license = "MIT"
keywords = ["protein", "single-cell", "molecular-pixelation", "spatial", "proteomics"]
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11']
packages = [
{ include = "pixelator", from = "src" },
{ include = "tests", format = "sdist" }]
[tool.poetry.dependencies]
python = ">=3.10,<3.12"
click = "*"
yapf = "*"
cutadapt = ">=4.2"
umi_tools = ">=1.1.4,<2.0.0"
pyfastx = "*"
yappi = "*"
pandas = "^2.0.0"
numpy = "<1.24.0"
annoy = "<=1.17.0"
xopen = "*"
xxhash = "*"
anndata = ">=0.8.0"
numba = ">=0.56.4"
scanpy = "*"
lxml = "*"
cssselect = "*"
typing_extensions = "*"
scipy = "<1.13.0"
pyarrow = ">=14"
semver = "^3.0.0"
ruamel-yaml = "^0.17.21"
pydantic = ">=2.0,<2.5"
polars = ">=1.0.0,<2.0.0"
importlib-resources = "^5.12.0"
fsspec = "^2024.9.0"
fastparquet = "^2023.8.0"
graspologic = "^3.3.0"
plotly = "*"
[tool.poetry.group.dev.dependencies]
ruff = "*"
pre-commit = "^3.2.2"
bumpversion = "*"
coverage = "*"
invoke = "*"
isort = "*"
pylint = "*"
pytest = "^7.0.0"
pytest-mpl = "^0.17.0"
sphinx = "*"
tox = "*"
tox-current-env = "^0.0.11"
black = "*"
mypy = "*"
pytest-watch = "*"
pytest-snapshot = "*"
pytest-cov = "*"
pytest-mock = "*"
pytest-dependency = "*"
sphinx-copybutton = ">=0.5.2"
sphinx-design = ">=0.4.1"
sphinx-inline-tabs = ">=2023.4.21"
myst-parser = "^2.0.0"
furo = "^2023.5.20"
pytest-benchmark = "^4.0.0"
pytest-playwright = "^0.4.4"
[tool.poetry.scripts]
pixelator = 'pixelator.cli:main_cli'
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.1"]
build-backend = "poetry_dynamic_versioning.backend"
[tool.pytest.ini_options]
pythonpath = [ "src" ]
testpaths = [ "tests" ]
markers = [
"integration_test: Marks a test as an integration test, which is often slow (deselect with '-m \"not integration_test\"')",
"workflow_test: Marks a test as a complete pixelator workflow, which is extremely slow (deselect with '-m \"not workflow_test\"')",
"external_workflow_test: Marks a test as a complete pixelator workflow that requires external data, which is extremely slow and requires additional setup before running (deselect with '-m \"not external_workflow_test\"')",
"web_test: Marks a test as a browser integration test, which requires a playwright browser to be installed (deselect with '-m \"not web_tests\"')"]
mpl-results-path = "tests/reports_mpl"
mpl-generate-summary = "html"
addopts = ["-p no:pytest-workflow", "-m not workflow_test and not web_test", "--benchmark-disable", "--mpl"]
filterwarnings = ["ignore::DeprecationWarning",]
[tool.ruff]
[tool.ruff.lint]
select = [
# pycodestyle
"E",
# pydocstyle
"D",
# isort,
"I"]
# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
ignore = ["E501","E402","E203","D213","D203"]
exclude = ["docs/conf.py"]
[tool.ruff.lint.per-file-ignores]
"pixelator/report/__init__.py" = ["E501"]
"**/tests/**" = ["D101", "D102", "D103", "D105", "D107", "D200", "D202", "D205", "D212" , "D400", "D401", "D403", "D404", "D415"]
# Since click uses a different layout for the docs strings to generate the
# cli docs, we ignore these rules here.
"src/pixelator/cli/**" = ["D200", "D212", "D400", "D415"]
"src/pixelator/test_utils/**" = ["D"]
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
# Metadata is unset, only add sha when not on a version tag
dirty = true
style = "pep440"
bump = false
latest-tag = true
strict = false
[tool.poetry-dynamic-versioning.substitution]
files = [ "src/pixelator/__init__.py", ]