Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
131 lines (124 loc) 路 5.2 KB
/
Copy pathpyproject.toml
File metadata and controls
131 lines (124 loc) 路 5.2 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
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
[build-system]
requires = ["setuptools>=64.0.0", "wheel"]
build-backend = "setuptools.build_meta"
# Installation Instructions:
# Install (normal, use-only):
# pip install radis
#
# For developers (create an alias, so you can still edit):
# pip install -e .
#
# When creating a new version, just update the __version__.txt file
[project]
name = "radis"
dynamic = ["version"] # Version is read from radis/__version__.txt
description = "A fast line-by-line code for high-resolution infrared molecular spectra"
readme = "README.md"
authors = [
{name = "Erwan Pannier"},
]
license = {text = "GNU Lesser General Public License v3 (LGPLv3)"}
keywords = [
"spectrum",
"infrared",
"spectra",
"radiation",
"nonequilibrium",
"spectroscopy",
"molecules",
"HITRAN",
"hitemp",
"exomol",
"GEISA",
"NIST",
"Kurucz",
"line-by-line",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Topic :: Scientific/Engineering",
"Programming Language :: Python",
"Programming Language :: Python :: 3.10", #DEV MESSAGE: end of life, October 2026, https://devguide.python.org/versions/.
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
]
requires-python = ">=3.10"
dependencies = [
# This is a duplicate of environment.yml; but it is NECESSARY to tell pip what are the dependencies in case use employ `pip install -e .` from empty environment
# Dependencies in environment.yml and here should be kept consistent.
# This is tested automatically https://github.com/radis/radis/pull/734
"astropy>=4.3.1", # Unit aware calculations
"astroquery>=0.4.6", # to fetch HITRAN databases
"beautifulsoup4>=4.10.0", # parse ExoMol website and HITRAN responses
"configparser", # for configuration file handling
"cryptography", # for encryption and security features
"habanero>=1.2.0", # CrossRef API to retrieve data from doi
"h5py>=3.2.1", # load HDF5
"hjson", # Json with comments (for default_radis.json)
"hitran-api", # HAPI, used to access TIPS partition functions
"joblib", # for parallel loading of SpecDatabase
"json-tricks>=3.15.0", # to deal with non jsonable formats
"lmfit", # for new fitting modules
"lxml", # parser used for ExoMol website
"matplotlib", # for plotting
"mpldatacursor", # interactive data cursors for matplotlib
"numba", # just-in-time compiler
"pandas", # data manipulation and analysis
"peakutils", # peak detection and fitting
"periodictable", # periodic table data
"plotly>=2.5.1", # for line survey HTML output
"psutil", # to get user RAM
"publib", # Plotting styles for Matplotlib.
"python-dotenv", # for managing environment variables
"requests", # for making HTTP requests to HITRAN database
"ruamel.yaml", # YAML parsing and writing
"scipy>=1.4.0", # scientific computing
"seaborn", # other matplotlib themes
"tables", # for pandas to HDF5 export - WARNING named "pytables" in conda
"termcolor", # terminal colors
"toml",
"tqdm", # for progress bars
"numpy~=2.0", #Warning, numpy 2.0 is not compatible with vaex-hdf5<=0.14.1, but we install vaex-hdf5 from the github repo see #869 and https://github.com/vaexio/vaex/issues/2468
'vaex-core; python_version < "3.13"', #to-do, check latest release of vaex (last compatible with 3.12 in january 2026)
'vaex-hdf5; python_version < "3.13"',
'vaex-viz; python_version < "3.13"',
"vulkan",
]
[project.optional-dependencies]
dev = [
"numpydoc", # for Jedi (autocompletion) to recognize
"black>=20.8b1", # for code-linting in accordance to PEP8
"isort", # for sorting imports
"pre-commit", # to enforce Black before each commit
"pytest", # to run test suite
"ipython>=7.0.0", # useful for fast debugging
]
docs = [
"sphinx-autodoc-annotation", # for sphinx documentation annotations
"sphinx>=7", # documentation generator
"docutils", # markup processing
"astroquery>=0.3.9", # for documentation examples
"sphinxcontrib-apidoc", # for API documentation generation
"sphinx-gallery", # for documentation examples gallery
"lmfit", # for documentation examples
"pytest", # Sphinx autodoc also parses test suite
"specutils", # spectroscopic data handling
]
[tool.setuptools]
# Note: Previously used Cython extensions were removed in v0.15
# If re-adding Cython support in the future, add build requirements in build-system.requires
include-package-data = true # add non .py data files in MANIFEST.in
zip-safe = false # impossible as long as we have external files read with __file__ syntax
platforms = ["any"]
[tool.setuptools.packages.find]
include = ["radis*"]
exclude = ["radis.test*", "docs*", "examples*", "test*"]
# Previously in setup.py:
# **get_ext_modules(with_binary) # see Main install routine for radis<0.15
# package_data={'radis': ['radis/phys/units.txt']} # now handled through MANIFEST.in
[tool.setuptools.dynamic]
version = {file = "radis/__version__.txt"}