-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: ✨ Introduce UV instead of poetry
- Loading branch information
Showing
2 changed files
with
7,258 additions
and
127 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,12 @@ | ||
[tool.poetry] | ||
[project] | ||
name = "SpectraFit" | ||
version = "1.1.0" | ||
version = "1.2.0" | ||
description = "Fast fitting of 2D- and 3D-Spectra with established routines" | ||
authors = [{ name = "Anselm Hahn", email = "[email protected]" }] | ||
requires-python = ">=3.8,<3.13" | ||
readme = "README.md" | ||
authors = ["Anselm Hahn <[email protected]>"] | ||
maintainers = ["Anselm Hahn <[email protected]>"] | ||
license = "BSD-3-Clause" | ||
repository = "https://github.com/Anselmoo/spectrafit" | ||
documentation = "https://anselmoo.github.io/spectrafit/" | ||
homepage = "https://pypi.org/project/spectrafit/" | ||
maintainers = [{ name = "Anselm Hahn", email = "[email protected]" }] | ||
keywords = [ | ||
"2D-Spectra", | ||
"3D-Spectra", | ||
|
@@ -30,114 +28,73 @@ classifiers = [ | |
"Programming Language :: Python :: 3.10", | ||
"Programming Language :: Python :: 3.11", | ||
"Programming Language :: Python :: 3.12", | ||
# "Programming Language :: Python :: 3.13", | ||
"Programming Language :: Python :: Implementation :: CPython", | ||
"Topic :: Scientific/Engineering :: Physics", | ||
"Topic :: Scientific/Engineering :: Chemistry", | ||
"Topic :: Scientific/Engineering :: Information Analysis", | ||
] | ||
include = [ | ||
# { path = "spectrafit/test/", format = "sdist" }, | ||
{ path = "examples/", format = "sdist" }, | ||
{ path = "spectrafit/plugins/img/SpectraFit.png", format = "sdist" }, | ||
dependencies = [ | ||
"lmfit>=1.2.2,<2", | ||
"pandas<2.2.1 ; python_version < '3.9'", | ||
"pandas>=2.2.2,<3 ; python_version >= '3.9'", | ||
"numpy<1.26.4 ; python_version < '3.9'", | ||
"numpy>=1.26.4,<2 ; python_version >= '3.9'", | ||
"emcee>=3.1.2,<4", | ||
"tabulate>=0.9.0,<0.10", | ||
"PyYAML~=6.0", | ||
"openpyxl>=3.0.9,<4", | ||
"seaborn>=0.13.0,<0.14", | ||
"numdifftools>=0.9.41,<0.10", | ||
"tqdm>=4.64.0,<5", | ||
"scikit-learn<1.5.0 ; python_version < '3.9'", | ||
"scikit-learn>=1.5.0,<2 ; python_version >= '3.9'", | ||
"art>=5.8,<7.0", | ||
"tomli>=2.0.1,<3", | ||
"tomli-w>=1.0.0,<2", | ||
"pydantic>=2.7.0,<3", | ||
"scipy>=1.10.1,<2 ; python_version < '3.9'", | ||
"scipy>=1.13.0,<2 ; python_version >= '3.9'", | ||
] | ||
exclude = ["docs/", "tools/", "spectrafit/test/", "spectrafit/**/test/"] | ||
|
||
|
||
[tool.poetry.dependencies] | ||
python = ">=3.8,<3.13" | ||
lmfit = "^1.2.2" | ||
pandas = [ | ||
{ version = "<2.2.1", markers = "python_version < '3.9'" }, | ||
{ version = "^2.2.2", markers = "python_version >= '3.9'" }, | ||
] | ||
numpy = [ | ||
{ version = "<1.26.4", markers = "python_version < '3.9'" }, | ||
{ version = "^1.26.4", markers = "python_version >= '3.9'" }, | ||
] | ||
emcee = "^3.1.2" | ||
tabulate = "^0.9.0" | ||
PyYAML = "^6.0" | ||
openpyxl = "^3.0.9" | ||
seaborn = "^0.13.0" | ||
numdifftools = "^0.9.41" | ||
tqdm = "^4.64.0" | ||
scikit-learn = [ | ||
{ version = "<1.5.0", markers = "python_version < '3.9'" }, | ||
{ version = "^1.5.0", markers = "python_version >= '3.9'" }, | ||
[project.optional-dependencies] | ||
jupyter = [ | ||
"jupyterlab>=3.5.2,<5.0.0", | ||
"plotly>=5.21.0,<6", | ||
"itables>=2.1.1,<3", | ||
"kaleido==0.2.1", | ||
"dtale>=3.9.0,<4", | ||
"python-pptx>=0.6.22,<1.1.0", | ||
] | ||
art = ">=5.8,<7.0" | ||
tomli = "^2.0.1" | ||
tomli-w = "^1.0.0" | ||
pydantic = "^2.7.0" | ||
scipy = [ | ||
{ version = "^1.10.1", markers = "python_version < '3.9'" }, | ||
{ version = "^1.13.0", markers = "python_version >= '3.9'" }, | ||
] | ||
jupyterlab = { version = ">=3.5.2,<5.0.0", optional = true } | ||
plotly = { version = "^5.21.0", optional = true } | ||
itables = { version = "^2.1.1", optional = true } | ||
kaleido = [ | ||
{ version = "^0.2.1", markers = "python_version < '3.9'" }, | ||
{ version = "^0.4.1", markers = "python_version >= '3.9'" }, | ||
] | ||
dtale = { version = "^3.9.0", optional = true } | ||
networkx = { extras = ["all"], version = "^3.0", optional = true } | ||
pydot = { version = "^3.0.0", optional = true } | ||
jupyter-dash = { version = "^0.4.2", optional = true } | ||
ipywidgets = { version = "^8.0.4", optional = true } | ||
dash-bootstrap-components = { version = "^1.3.0", optional = true } | ||
dash-bootstrap-templates = [ | ||
{ version = "<=1.1.2", markers = "python_version < '3.10'" }, | ||
{ version = "^1.2.0", markers = "python_version >= '3.10'" }, | ||
] | ||
python-pptx = { version = ">=0.6.22,<1.1.0", optional = true } | ||
|
||
[tool.poetry.group.dev.dependencies] | ||
mypy = "^1.9.0" | ||
black = { extras = ["jupyter"], version = "^24.0" } | ||
pre-commit = [ | ||
{ version = "<=3.7.1", markers = "python_version < '3.9'" }, | ||
{ version = "^3.7.1", markers = "python_version >= '3.9'" }, | ||
jupyter-dash = [ | ||
"jupyter-dash>=0.4.2,<0.5", | ||
"ipywidgets>=8.0.4,<9", | ||
"dash-bootstrap-components>=1.3.0,<2", | ||
"dash-bootstrap-templates", | ||
] | ||
pytest = ">=7.1.3,<9.0.0" | ||
pytest-clarity = "^1.0.1" | ||
pytest-cov = ">=3,<7" | ||
pytest-console-scripts = "^1.3.1" | ||
pytest-xdist = ">=2.5,<4.0" | ||
pytest-plt = "^1.1.0" | ||
pytest-mock = "^3.10.0" | ||
types-toml = "^0.10.8" | ||
types-PyYAML = "^6.0.11" | ||
types-tabulate = ">=0.8.11,<0.10.0" | ||
types-mock = ">=4.0.15,<6.0.0" | ||
dash = { extras = ["testing"], version = "^2.7.1" } | ||
bandit = "^1.7.5" | ||
bump-pydantic = "^0.8.0" | ||
types-setuptools = ">=75.8.0.20250110,<75.9.0.0" | ||
ruff = "^0.9.0" | ||
|
||
[tool.poetry.group.docs.dependencies] | ||
mkdocs-material = "^9.5.0" | ||
mkdocstrings = { extras = ["python"], version = ">=0.26.0,<0.28.0" } | ||
mkdocs-literate-nav = ">=0.4.1,<0.7.0" | ||
mkdocs-section-index = "^0.3.4" | ||
mkdocs-autorefs = "^1.0.1" | ||
mkdocs-minify-plugin = "^0.8.0" | ||
mkdocs-jupyter = [ | ||
{ version = "<=0.25.0", markers = "python_version < '3.9'" }, | ||
{ version = "^0.25.0", markers = "python_version >= '3.9'" }, | ||
graph = ["networkx>=3.0.0,<4", "pydot>=3.0.0,<4"] | ||
all = [ | ||
"jupyterlab>=3.5.2,<5.0.0", | ||
"plotly>=5.21.0,<6", | ||
"itables>=2.1.1,<3", | ||
"kaleido==0.2.1", | ||
"dtale>=3.9.0,<4", | ||
"networkx[all]~=3.0", | ||
"pydot>=3.0.0,<4", | ||
"jupyter-dash>=0.4.2,<0.5", | ||
"ipywidgets>=8.0.4,<9", | ||
"dash-bootstrap-components>=1.3.0,<2", | ||
"dash-bootstrap-templates", | ||
"python-pptx>=0.6.22,<1.1.0", | ||
] | ||
mkdocs-table-reader-plugin = "^3.0.0" | ||
mike = "^2.0.0" | ||
jupytext = "^1.14.5" | ||
mathjax = "^0.1.2" | ||
|
||
[build-system] | ||
requires = ["poetry-core>=1.0.0"] | ||
build-backend = "poetry.core.masonry.api" | ||
[project.urls] | ||
Homepage = "https://pypi.org/project/spectrafit/" | ||
Repository = "https://github.com/Anselmoo/spectrafit" | ||
Documentation = "https://anselmoo.github.io/spectrafit/" | ||
Changelog = "https://github.com/Anselmoo/spectrafit/blob/main/CHANGELOG.md" | ||
Issues = "https://github.com/Anselmoo/spectrafit/issues" | ||
|
||
[tool.poetry.scripts] | ||
[project.scripts] | ||
spectrafit = "spectrafit.spectrafit:command_line_runner" | ||
spectrafit-file-converter = "spectrafit.plugins.file_converter:command_line_runner" | ||
spectrafit-data-converter = "spectrafit.plugins.data_converter:command_line_runner" | ||
|
@@ -148,44 +105,70 @@ spectrafit-rixs-visualizer = "spectrafit.plugins.rixs_visualizer:command_line_ru | |
spectrafit-jupyter = "spectrafit.app.app:jupyter" | ||
spectrafit-pptx-converter = "spectrafit.plugins.pptx_converter:command_line_runner" | ||
|
||
|
||
[tool.poetry.extras] | ||
jupyter = ["jupyterlab", "plotly", "itables", "kaleido", "dtale", "python-pptx"] | ||
jupyter-dash = [ | ||
"jupyter-dash", | ||
"ipywidgets", | ||
"dash-bootstrap-components", | ||
"dash-bootstrap-templates", | ||
[dependency-groups] | ||
dev = [ | ||
"mypy>=1.9.0,<2", | ||
"black[jupyter]~=24.0", | ||
"pre-commit<=3.7.1 ; python_version < '3.9'", | ||
"pre-commit>=3.7.1,<4 ; python_version >= '3.9'", | ||
"pytest>=7.1.3,<9.0.0", | ||
"pytest-clarity>=1.0.1,<2", | ||
"pytest-cov>=3,<7", | ||
"pytest-console-scripts>=1.3.1,<2", | ||
"pytest-xdist>=2.5,<4.0", | ||
"pytest-plt>=1.1.0,<2", | ||
"pytest-mock>=3.10.0,<4", | ||
"types-toml>=0.10.8,<0.11", | ||
"types-PyYAML>=6.0.11,<7", | ||
"types-tabulate>=0.8.11,<0.10.0", | ||
"types-mock>=4.0.15,<6.0.0", | ||
"dash[testing]>=2.7.1,<3", | ||
"bandit>=1.7.5,<2", | ||
"bump-pydantic>=0.8.0,<0.9", | ||
"types-setuptools>=75.5.0.20241116,<75.7.0.0", | ||
"ruff>=0.8.0,<0.9", | ||
] | ||
graph = ["networkx", "pydot"] | ||
all = [ | ||
"jupyterlab", | ||
"plotly", | ||
"itables", | ||
"kaleido", | ||
"dtale", | ||
"networkx", | ||
"pydot", | ||
"jupyter-dash", | ||
"ipywidgets", | ||
"dash-bootstrap-components", | ||
"dash-bootstrap-templates", | ||
"python-pptx", | ||
docs = [ | ||
"mkdocs-material>=9.5.0,<10", | ||
"mkdocstrings[python]>=0.26.0,<0.28.0", | ||
"mkdocs-literate-nav>=0.4.1,<0.7.0", | ||
"mkdocs-section-index>=0.3.4,<0.4", | ||
"mkdocs-autorefs>=1.0.1,<2", | ||
"mkdocs-minify-plugin>=0.8.0,<0.9", | ||
"mkdocs-jupyter<=0.25.0 ; python_version < '3.9'", | ||
"mkdocs-jupyter>=0.25.0,<0.26 ; python_version >= '3.9'", | ||
"mkdocs-table-reader-plugin>=3.0.0,<4", | ||
"mike>=2.0.0,<3", | ||
"jupytext>=1.14.5,<2", | ||
"mathjax>=0.1.2,<0.2", | ||
] | ||
|
||
[tool.uv] | ||
default-groups = ["dev", "docs"] | ||
|
||
[tool.hatch.build.targets.sdist] | ||
include = ["examples/", "spectrafit/plugins/img/SpectraFit.png"] | ||
exclude = ["docs/", "tools/", "spectrafit/test/", "spectrafit/**/test/"] | ||
|
||
[tool.hatch.build.targets.wheel] | ||
exclude = ["docs/", "tools/", "spectrafit/test/", "spectrafit/**/test/"] | ||
|
||
[build-system] | ||
requires = ["hatchling"] | ||
build-backend = "hatchling.build" | ||
|
||
[tool.ruff.lint] | ||
fixable = ["ALL"] | ||
extend-ignore = ["E721", "E731"] | ||
|
||
|
||
[tool.pytest] | ||
script_launch_mode = "subprocess" | ||
|
||
[tool.pytest.ini_options] | ||
minversion = "7.0" | ||
addopts = "--cov=./spectrafit/ --cov-report=xml:coverage.xml --diff-symbols --plots -vv" | ||
testpaths = ["spectrafit"] | ||
|
||
|
||
[tool.mypy] | ||
plugins = ["pydantic.mypy", "numpy.typing.mypy_plugin"] | ||
follow_imports = "silent" | ||
|
Oops, something went wrong.