-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
123 lines (116 loc) · 3.2 KB
/
Copy pathpyproject.toml
File metadata and controls
123 lines (116 loc) · 3.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
[tool.black]
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.eggs
| \.travis.yml
| \.
| build
| dist
)/
'''
[build-system]
requires = ["setuptools>=61", "wheel", "setuptools_scm"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
# Only consider v* tags for versioning (exclude compaction tags)
tag_regex = "^v(?P<version>[0-9]+\\.[0-9]+\\.[0-9]+.*)$"
# Use git describe with version tags only
git_describe_command = "git describe --dirty --tags --long --match 'v*'"
[project]
name = "solarwindpy"
description = "Python package for solar wind data analysis."
readme = "README.rst"
requires-python = ">=3.11,<4"
license = {file = "LICENSE"}
authors = [
{name = "B. L. Alterman", email = "blaltermanphd@gmail.com"}
]
dynamic = ["version"]
dependencies = [
"numpy>=1.26,<3.0", # NumPy 2.0 support; requires numba>=0.59
"scipy>=1.13", # NumPy 2.0 compatibility
"pandas>=2.0", # NumPy 2.0 compatibility
"numexpr>=2.8",
"bottleneck>=1.3",
"h5py>=3.8",
"pyyaml>=6.0",
"matplotlib>=3.5",
"astropy>=5.0",
"numba>=0.59", # Minimum for NumPy 2.0 support
"tabulate>=0.9",
"docstring-inheritance>=2.2.0,<3.0", # MRO compatibility with ABCMeta; v3.0 breaks compatibility
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Intended Audience :: Science/Research",
"Intended Audience :: Education",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Physics",
]
keywords = [
"plasma",
"physics",
"solar wind",
"measurements",
"in situ",
"spacecraft",
]
[project.optional-dependencies]
test = [
"pytest>=8.0",
"pytest-cov>=6.0",
]
docs = [
"sphinx>=7.0",
"sphinx_rtd_theme>=2.0",
"sphinxcontrib-spelling>=8.0",
"sphinxcontrib-bibtex>=2.6",
"numpydoc>=1.6",
"docstring-inheritance>=2.2.0,<3.0",
"doc8>=1.1",
]
dev = [
# Testing tools
"pytest>=8.0",
"pytest-cov>=6.0",
# Documentation tools
"sphinx>=7.0",
"sphinx_rtd_theme>=2.0",
"sphinxcontrib-spelling>=8.0",
"sphinxcontrib-bibtex>=2.6",
"numpydoc>=1.6",
"docstring-inheritance>=2.2.0,<3.0",
"doc8>=1.1",
# Development tools
"black>=24.0",
"flake8>=7.0",
"flake8-docstrings>=1.7",
"pydocstyle>=6.3",
"tables>=3.9", # PyTables for HDF5 testing
"psutil>=5.9.0",
# Code analysis tools (ast-grep via MCP server, not Python package)
"pre-commit>=3.5", # Git hook framework
]
analysis = [
# Interactive analysis environment
"jupyterlab>=4.0",
"tqdm>=4.0", # Progress bars
"ipywidgets>=8.0", # Interactive widgets
]
[project.urls]
"Bug Tracker" = "https://github.com/blalterman/SolarWindPy/issues"
"Source" = "https://github.com/blalterman/SolarWindPy"
[tool.setuptools.package-data]
solarwindpy = ["core/data/*.csv"]
[tool.pip-tools]
# pip-compile configuration for lockfile generation
generate-hashes = false # Set to true for security-critical deployments
allow-unsafe = true # Allow pip, setuptools, wheel in lockfiles