|
| 1 | +[build-system] |
| 2 | +requires = ["hatchling"] |
| 3 | +build-backend = "hatchling.build" |
| 4 | + |
1 | 5 | [project] |
2 | 6 | name = "nmd_scanner" |
3 | 7 | version = "0.1.0" |
4 | 8 | description = "A simple scanner package for NMD" |
5 | 9 | authors = [ |
6 | | - { name = "Your Name", email = "your.email@example.com" } |
| 10 | + { name = "Carina Hui Schröder", email = "Carina2504@users.noreply.github.com" }, |
| 11 | + { name = "Florian R. Hölzlwimmer", email = "git.ich@frhoelzlwimmer.de" }, |
7 | 12 | ] |
8 | 13 | readme = "README.md" |
9 | | -license = { text = "MIT" } |
| 14 | +license = "MIT" |
| 15 | +requires-python = ">=3.12" |
10 | 16 | dependencies = [ |
11 | | - # Add your runtime dependencies here, e.g. |
12 | | - # "requests >=2.25.1", |
| 17 | + "pandas", |
| 18 | + "numpy", |
| 19 | + "pyfaidx", |
| 20 | + "biopython", |
| 21 | + "pyranges", |
| 22 | + "pysam", |
| 23 | + "tqdm>=4.66.5,<5", |
| 24 | + "importlib-metadata", |
13 | 25 | ] |
14 | 26 |
|
15 | | -[build-system] |
16 | | -requires = ["setuptools>=61.0", "wheel"] |
17 | | -build-backend = "setuptools.build_meta" |
| 27 | +[project.urls] |
| 28 | +"Homepage" = "https://github.com/gagneurlab/NMD-Scanner" |
18 | 29 |
|
19 | | -[tool.setuptools.packages.find] |
20 | | -where = ["src"] |
| 30 | +[dependency-groups] |
| 31 | +dev = [ |
| 32 | + "tox>=4", |
| 33 | + "tox-uv", |
| 34 | +] |
| 35 | +test = [ |
| 36 | + "pytest>=8,<9", |
| 37 | + "pytest-xdist", |
| 38 | + "pytest-mock", |
| 39 | + "pytest-cov", |
| 40 | + "pytest-sugar", |
| 41 | +] |
| 42 | +lint = [ |
| 43 | + "ruff", |
| 44 | + "mypy", |
| 45 | + "pandas-stubs", |
| 46 | +] |
21 | 47 |
|
22 | | -[project.optional-dependencies] |
23 | | -dev = ["pytest >=7.0"] |
| 48 | +[tool.hatch.build.targets.wheel] |
| 49 | +packages = ["src/nmd_scanner"] |
24 | 50 |
|
25 | | -[tool.pytest.ini_options] |
26 | | -testpaths = [ |
27 | | - "tests" |
28 | | -] |
29 | | -addopts = [ |
30 | | - "--import-mode=importlib", |
| 51 | +[tool.ruff] |
| 52 | +target-version = "py312" |
| 53 | +line-length = 120 |
| 54 | +extend-exclude = ["scripts", "resources", "testdir"] |
| 55 | + |
| 56 | +[tool.ruff.lint] |
| 57 | +select = ["E", "F", "W", "I"] |
| 58 | +ignore = [ |
| 59 | + "E501", # line-too-long |
| 60 | + "E712", # comparison-to-true (pandas idiom: df[col == True]) |
| 61 | + "F403", # star imports used intentionally in package |
| 62 | + "F405", # may-be-undefined-from-star-import |
| 63 | + "F841", # local-variable-assigned-but-never-used |
31 | 64 | ] |
32 | 65 |
|
| 66 | +[tool.ruff.lint.per-file-ignores] |
| 67 | +"tests/*" = ["S", "SIM", "PLR", "F811", "F841"] |
| 68 | +"__init__.py" = ["F401"] |
| 69 | + |
| 70 | +[tool.tox] |
| 71 | +requires = ["tox>=4", "tox-uv"] |
| 72 | +env_list = ["format-check", "lints", "typecheck", "py3.12", "py3.14"] |
| 73 | +isolated_build = true |
| 74 | + |
| 75 | +[tool.tox.env_run_base] |
| 76 | +runner = "uv-venv-lock-runner" |
| 77 | +description = "run unit tests" |
| 78 | +dependency_groups = ["test"] |
| 79 | +commands = [["pytest", { replace = "posargs", default = ["tests"], extend = true }]] |
| 80 | + |
| 81 | +[tool.tox.env."format-check"] |
| 82 | +runner = "uv-venv-lock-runner" |
| 83 | +skip_install = true |
| 84 | +dependency_groups = ["lint"] |
| 85 | +commands = [["ruff", "format", "--check", "."]] |
| 86 | + |
| 87 | +[tool.tox.env."lints"] |
| 88 | +runner = "uv-venv-lock-runner" |
| 89 | +skip_install = true |
| 90 | +dependency_groups = ["lint"] |
| 91 | +commands = [["ruff", "check", "."]] |
| 92 | + |
| 93 | +[tool.tox.env."typecheck"] |
| 94 | +runner = "uv-venv-lock-runner" |
| 95 | +dependency_groups = ["lint"] |
| 96 | +commands = [["mypy", "src/nmd_scanner"]] |
| 97 | + |
| 98 | +[tool.mypy] |
| 99 | +python_version = "3.12" |
| 100 | +ignore_missing_imports = true |
| 101 | + |
| 102 | +[tool.pytest.ini_options] |
| 103 | +testpaths = ["tests"] |
| 104 | +addopts = ["--import-mode=importlib"] |
0 commit comments