1- [project ]
1+ [tool . poetry ]
22name = " looptrace-loci-vis"
3- dynamic = [" version" ]
4- requires-python = " >= 3.10, < 3.13"
5- authors = [
6- {name = " Vince Reuter" }
7- ]
3+ version = " 0.3.4"
84description = " This project facilitates viewing, in `napari`, locus-specific spots from `looptrace`."
5+ authors = [" Vince Reuter" ]
6+ license = " MIT"
97readme = " README.md"
10- license = { file = " LICENSE " }
8+ repository = " https://github.com/gerlichlab/looptrace-loci-vis.git "
119keywords = [" visualisation" , " bioinformatics" , " chromatin" , " napari" , " FISH" ]
1210classifiers = [
13- " Development Status :: 1 - Planning" ,
14- " License :: OSI Approved :: MIT License" ,
15- " Operating System :: POSIX :: Linux" ,
16- " Operating System :: MacOS" ,
17- " Operating System :: Microsoft :: Windows" ,
18- " Programming Language :: Python :: 3.10" ,
19- " Programming Language :: Python :: 3.11" ,
20- " Programming Language :: Python :: 3.12" ,
21- " Topic :: Scientific/Engineering :: Bio-Informatics" ,
22- " Typing :: Typed" ,
23- ]
24- dependencies = [
25- " expression >= 5.0.2" ,
26- " gertils @ git+https://github.com/gerlichlab/gertils.git@v0.6.0" ,
27- " napari >= 0.4.19; sys_platform == 'darwin'" ,
28- " napari[all] >= 0.4.19; sys_platform != 'darwin'" ,
29- " numpy" ,
30- " numpydoc_decorator >= 2.2.1" ,
31- " pandas" ,
32- " pyqt6 >= 6.5.0; sys_platform == 'darwin'" ,
33- " zarr >= 2.4.12" ,
11+ " Development Status :: 1 - Planning" ,
12+ " License :: OSI Approved :: MIT License" ,
13+ " Operating System :: POSIX :: Linux" ,
14+ " Operating System :: MacOS" ,
15+ " Operating System :: Microsoft :: Windows" ,
16+ " Programming Language :: Python :: 3.10" ,
17+ " Programming Language :: Python :: 3.11" ,
18+ " Programming Language :: Python :: 3.12" ,
19+ " Topic :: Scientific/Engineering :: Bio-Informatics" ,
20+ " Typing :: Typed" ,
3421]
3522
3623[build-system ]
37- requires = [" setuptools " , " wheel " ]
38- build-backend = " setuptools.build_meta "
24+ requires = [" poetry-core " ]
25+ build-backend = " poetry.core.masonry.api "
3926
40- [project .urls ]
41- Homepage = " https://github.com/gerlichlab/looptrace-loci-vis"
42- Repository = " https://github.com/gerlichlab/looptrace-loci-vis.git"
43- Issues = " https://github.com/gerlichlab/looptrace-loci-vis/issues"
27+ [tool .poetry .plugins ."napari .manifest" ]
28+ looptrace-loci-vis = " looptrace_loci_vis:napari.yaml"
4429
45- [tool .setuptools .dynamic ]
46- version = { attr = " looptrace_loci_vis.__version__" }
30+ [tool .poetry .dependencies ]
31+ python = " >=3.10,<3.13"
32+ expression = " >=5.0.2"
33+ gertils = { git = " https://github.com/gerlichlab/gertils.git" , tag = " v0.6.0" }
34+ numpy = " *"
35+ numpydoc_decorator = " >=2.2.1"
36+ pandas = " *"
37+ zarr = " >=2.4.12"
4738
48- [tool .setuptools .package-data ]
49- looptrace_loci_vis = [ " napari.yaml" , " examples/*.csv" ]
39+ # OS-specific dependency declarations
40+ napari = { version = " ==0.4.19.post1" , markers = " sys_platform == 'darwin'" }
41+ pyqt6 = { version = " >=6.5.0" , markers = " sys_platform == 'darwin'" }
5042
51- [project . entry-points . "napari . manifest" ]
52- looptrace-loci-vis = " looptrace_loci_vis:napari.yaml "
43+ [tool . poetry . group . dev ]
44+ optional = true
5345
54- [project .optional-dependencies ]
55- formatting = [
56- " codespell >= 2.2.4" ,
57- " ruff == 0.7.4" , # https://github.com/astral-sh/ruff/issues/14681
58- ]
59- linting = [
60- " mypy >= 1.0.1" ,
61- " pandas-stubs" ,
62- " ruff == 0.7.4" , # https://github.com/astral-sh/ruff/issues/14681
63- ]
64- testsuite = [
65- " npe2" ,
66- " pytest >= 7.1.0" ,
67- " pytest-cov >= 5.0.0" ,
68- " typer" ,
69- ]
46+ [tool .poetry .group .dev .dependencies ]
47+ pytest = " ^7.2.0"
48+
49+ [tool .poetry .group .formatting ]
50+ optional = true
51+
52+ [tool .poetry .group .formatting .dependencies ]
53+ codespell = " >=2.2.4"
54+ ruff = " ==0.7.4" # https://github.com/astral-sh/ruff/issues/14681
55+
56+ [tool .poetry .group .linting ]
57+ optional = true
58+
59+ [tool .poetry .group .linting .dependencies ]
60+ mypy = " >=1.0.1"
61+ pandas-stubs = " *"
62+ ruff = " ==0.7.4" # https://github.com/astral-sh/ruff/issues/14681
63+
64+ [tool .poetry .group .testsuite .dependencies ]
65+ npe2 = " *"
66+ pytest = " >=7.1.0"
67+ pytest-cov = " >=5.0.0"
68+ typer = " *"
7069
7170[tool .codespell ]
72- skip = " .git,.mypy_cache,.nox,.vscode,__pycache__,poetry.lock"
71+ skip = " .git,.mypy_cache,.nox,.vscode,__pycache__,pyproject.toml, poetry.lock"
7372builtin = " clear,rare,informal,usage,code,names"
74- ignore-words-list = " jupyter,iff"
73+ ignore-words-list = " jupyter,iff" # prevent jupyter -> jupiter, iff -> if
7574check-filenames = true
76- uri-ignore-words-list = " *"
75+ uri-ignore-words-list = " *" # prevent spelling correction in URL-like values.
7776
7877[tool .mypy ]
79- files = [' looptrace_loci_vis/*.py' ]
78+ files = [' looptrace_loci_vis/*.py' , ' tests/*.py' ]
79+ plugins = [" pydantic.mypy" ]
8080warn_redundant_casts = true
8181warn_unused_ignores = true
8282warn_return_any = true
8383warn_unreachable = true
84+ enable_error_code = [" ignore-without-code" ]
8485
8586[[tool .mypy .overrides ]]
8687module = " looptrace_loci_vis.*"
@@ -95,15 +96,19 @@ disallow_subclassing_any = true
9596implicit_optional = false
9697strict_optional = true
9798
98- [tool .pytest .ini_options ]
99- addopts = " -vv --cov looptrace_loci_vis --cov-report term-missing"
100-
10199[tool .ruff ]
102100# Black uses line-length = 88, but allows exceptions when breaking the line
103101# would lead to other rule violations. Use 100 as a maximum hard limit:
104102line-length = 100
105103target-version = " py310"
106104
105+ [tool .ruff .lint .per-file-ignores ]
106+ "tests/*.py" = [
107+ " INP001" , # part of an implicit namespace package
108+ " D103" , # Missing docstring in public function
109+ " ANN201" , # Missing return type annotation for public function
110+ ]
111+
107112[tool .ruff .lint ]
108113select = [" ALL" ]
109114ignore = [
@@ -115,19 +120,16 @@ ignore = [
115120 # Opinionated syntax
116121 " D203" , # Ignore this to instead opt for class body or docstring to possibly start right away under class.
117122 " D213" , # Ignore this to instead opt for summary part of docstring to be on first physical line.
123+ " D401" , # First line of docstring should be in imperative mood
118124 " TRY003" , # Avoid specifying long messages outside the exception class
119125 " C408" , # Unnecessary `dict` call (rewrite as a literal)
120126 " EM" , # Exception must not use a (f-)string literal, assign to variable first
121127 " FIX002" , # Line contains TODO, consider resolving the issue
122128 " D400" , # First line should end with a period
123129 " D415" , # First line should end with a period, question mark, or exclamation point
124130 " N818" , # Exception should be named with an Error suffix
125- " PLR0913" , # Too many arguments in function definition
126- " D401" , # First line of docstring should be in imperative mood
127- " PLC0105" , # This suggests suffixing a type variable with variance type (e.g., co/contra)
128131
129132 # Imports and type annotations
130- " ANN003" , # Missing type annotation for kwargs
131133 " FA100" , # Missing `from __future__ import annotations`, but uses `typing.*`
132134 " TCH002" , # Move third-party import `...` into a type-checking block
133135 " TCH003" , # Move standard library import `...` into a type-checking block
@@ -152,25 +154,5 @@ ignore = [
152154 " ISC001" , # single-line-implicit-string-concatenation
153155 " ISC002" , # multi-line-implicit-string-concatenation
154156 " E501" , # line-too-long
155-
156- # Other
157- " PLR0912" , # too many branches (of a conditional)
158- " TD002" , # missing author in TODO
159- " C901" , # function too complex
160- " PLR0911" , # too many return statements
161- " LOG015" , # Use own logger instead
162- ]
163-
164- [tool .ruff .lint .per-file-ignores ]
165- "tests/*" = [
166- # Ignore some groups of checks in our test code.
167- " ANN" , # Type annotations
168- " D10" , # Missing docstrings
169- " INP001" , # File `...` is part of an implicit namespace package. Add an `__init__.py`.
170-
171- # Ignore some more specific checks in our test code.
172- " D401" , # First line of docstring should be in imperative mood
173- " N802" , # Function name `...` should be lowercase
174- " S101" , # Use of `assert` detected
175157]
176158
0 commit comments