Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
65 lines (58 loc) · 2.35 KB
/
Copy pathpyproject.toml
File metadata and controls
65 lines (58 loc) · 2.35 KB
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
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "majec"
version = "0.1.5"
description = "Momentum-Accelerated Junction-Enhanced Counting Ecosystem"
authors = ["Ari J. Firestone <arijfire@alumni.stanford.edu>"]
license = "Apache-2.0"
readme = "README.md"
packages = [{include = "majec", from = "src"}]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"Intended Audience :: Science/Research",
]
# --- DEPENDENCY DEFINITIONS ---
# All dependencies, including optional ones, are defined here.
[tool.poetry.dependencies]
python = "^3.11"
# --- Core Dependencies ---
numpy = "^2.3"
pandas = "^2.3"
# --- Optional Dependencies ---
# They are defined here but marked as "optional".
# They will only be installed if an "extra" group calls them.
intervaltree = { version = "^3.1", optional = true }
polars = { version = ">=1.33", optional = true }
plotly = { version = ">=6.3", optional = true }
python-kaleido = { version = ">=1.0", optional = true }
pypdf2 = { version = ">=3.0", optional = true }
scipy = { version = ">=1.16", optional = true }
xlsxwriter = { version = ">=3.1", optional = true }
# --- OPTIONAL DEPENDENCY GROUPS ("EXTRAS") ---
# This section now contains ONLY the names of the packages.
# The versions are managed in the section above.
[tool.poetry.extras]
database = ["polars"]
viz = ["plotly", "python-kaleido", "pypdf2", "xlsxwriter"]
tools = ["scipy"]
full_analysis = ["polars", "plotly", "python-kaleido", "pypdf2", "scipy", "intervaltree"]
# --- SCRIPT ENTRY POINTS ---
[tool.poetry.scripts]
majec_run_pipeline = "majec.pipeline:main"
majec_precompute_annotations = "majec.preprocess:main"
majec_build_db = "majec.database:main"
majec_add_norm_factors = "majec.tools.normalization:main"
majec_prepare_deseq2 = "majec.analysis.deseq2:main"
majec_visualize = "majec.analysis.visualization:main"
majec_calc_frag_len = "majec.tools.fragment_lengths:main"
majec_calc_thresholds = "majec.tools.thresholds:main"
# --- DEV DEPENDENCIES (not published to PyPI) ---
[tool.poetry.group.dev.dependencies]
pytest = "^9.0.3" # <9.0.3 is CVE-2025-71176 (tmpdir handling)