Skip to content

Commit 24a5191

Browse files
committed
Migrate poetry dependency specification to standardized specification
1 parent 21be5f2 commit 24a5191

File tree

1 file changed

+64
-86
lines changed

1 file changed

+64
-86
lines changed

pyproject.toml

+64-86
Original file line numberDiff line numberDiff line change
@@ -31,107 +31,85 @@ classifiers = [
3131
"License :: OSI Approved :: MIT License",
3232
]
3333

34+
requires-python = ">=3.9"
35+
3436
# NOTE: Minimum dependencies are tested with the packages defined in the
3537
# `ci/environment-mindeps.yaml` conda environment. When updating minimum dependencies
3638
# here, make sure to also update `ci/environment-mindeps.yaml`.
37-
[tool.poetry.dependencies]
38-
python = ">=3.9,<4.0"
39-
python-cmr = ">=0.10.0"
40-
pqdm = ">=0.1"
41-
requests = ">=2.26"
42-
s3fs = ">=2022.11"
43-
fsspec = ">=2022.11"
44-
tinynetrc = "^1.3.1"
45-
multimethod = ">=1.8"
46-
importlib-resources = ">=6.3.2"
47-
typing_extensions = ">=4.10.0"
39+
dependencies = [
40+
"python-cmr >=0.10.0",
41+
"pqdm >=0.1",
42+
"requests >=2.26",
43+
"s3fs >=2022.11",
44+
"fsspec >=2022.11",
45+
"tinynetrc ^1.3.1",
46+
"multimethod >=1.8",
47+
"importlib-resources >=6.3.2",
48+
"typing_extensions >=4.10.0",
49+
"numpy >=1.24.0;python<3.12",
50+
"numpy >=1.26.0;python>=3.12",
51+
]
4852

4953
## Optional dependencies; can be opted-in with extra specifications below
5054
## This is so verbose because Poetry requires it: https://python-poetry.org/docs/pyproject#extras
5155
## If we switch to PEP621 specification, we can specify extras (called
5256
## "optional" under PEP621) with versions in one line:
5357
#https://peps.python.org/pep-0621/#example
54-
kerchunk = { version = ">=0.1.2", optional = true }
5558
# kerchunk requires numpy, but numpy >=1.26.0 is required for Python 3.12 support
56-
numpy = [
57-
{ version = ">=1.24.0", optional = true, python = "<3.12" },
58-
{ version = ">=1.26.0", optional = true, python = ">=3.12" }
59+
[project.optional-dependencies]
60+
kerchunk = [
61+
"kerchunk >=2022.1.0",
62+
"dask >=0.1.2",
63+
]
64+
dev = [
65+
"bump-my-version >=0.10.0",
66+
"pre-commit >=2.4",
67+
"ruff >=0.4.2",
5968
]
60-
dask = { version = ">=2022.1.0", optional = true }
61-
62-
# Dev
63-
bump-my-version = { version = ">=0.10.0", optional = true }
64-
pre-commit = { version = ">=2.4", optional = true }
65-
ruff = { version = ">=0.4.2", optional = true }
66-
67-
# Test
68-
mypy = { version = ">=0.812", optional = true }
69-
pytest = { version = ">=6.0", optional = true }
70-
pytest-cov = { version = ">=2.8", optional = true }
71-
pytest-watch = { version = ">=4.2", optional = true }
72-
python-magic = { version = ">=0.4", optional = true }
73-
responses = { version = ">=0.14", optional = true }
74-
types-requests = { version = ">=0.1", optional = true }
75-
types-setuptools = { version = ">=0.1", optional = true }
76-
vcrpy = { version = ">=6.0.1", optional = true }
77-
78-
# Docs
79-
jupyterlab = { version = ">=3", optional = true }
80-
ipywidgets = { version = ">=7.7.0", optional = true }
81-
widgetsnbextension = { version = ">=3.6.0", optional = true }
82-
# Prevent install of 1.6.0 because the module mkdocs.tests
83-
# is no longer exported, which causes mkdocs-jupyter to
84-
# break with a ModuleNotFoundError.
85-
mkdocs = { version = ">=1.2,!=1.6.0", optional = true }
86-
mkdocs-material = { version = ">=7.1,<10.0", optional = true }
87-
mkdocs-redirects = { version = ">=1.2.1", optional = true }
88-
markdown-callouts = { version = ">=0.2.0", optional = true }
89-
markdown-include = { version = ">=0.6", optional = true }
90-
mkdocstrings = {extras = ["python"], version = ">=0.19.0", optional = true}
91-
mkdocs-jupyter = { version = ">=0.19.0", optional = true }
92-
pymdown-extensions = { version = ">=9.2", optional = true }
93-
pygments = { version = ">=2.11.1", optional = true }
94-
# for notebook integrations and documentation examples
95-
xarray = { version = ">=2023.01", optional = true }
96-
matplotlib = { version = ">=3.3", optional = true }
97-
h5netcdf = { version = ">=0.11", optional = true }
98-
pyproj = [
99-
{ version = ">=3.5.0", python = "<3.12", optional = true },
100-
{ version = ">=3.6.1", python = ">=3.12", optional = true },
69+
test = [
70+
"mypy >=0.812",
71+
"pytest >=6.0",
72+
"pytest-cov >=2.8",
73+
"pytest-watch >=4.2",
74+
"python-magic >=0.4",
75+
"responses >=0.14",
76+
"types-requests >=0.1",
77+
"types-setuptools >=0.1",
78+
"vcrpy >=6.0.1",
10179
]
102-
# The following error occurs when building the docs, so we must explicitly
103-
# include lxml-html-clean as a dev dependency until mkdocs-jupyter is updated:
104-
#
105-
# ImportError: lxml.html.clean module is now a separate project lxml_html_clean.
106-
# Install lxml[html_clean] or lxml_html_clean directly.
107-
#
108-
# See https://github.com/danielfrg/mkdocs-jupyter/issues/200
109-
# See https://github.com/danielfrg/mkdocs-jupyter/issues/197
110-
lxml-html-clean = {version = ">=0.1.1", optional = true}
111-
112-
[tool.poetry.extras]
113-
kerchunk = ["kerchunk", "dask"]
114-
dev = ["bump-my-version", "pre-commit", "ruff"]
115-
test = ["mypy", "pytest", "pytest-cov", "pytest-watch", "python-magic", "responses", "types-requests", "types-setuptools", "vcrpy"]
11680
docs = [
117-
"jupyterlab",
118-
"mkdocs",
119-
"mkdocs-material",
120-
"mkdocs-redirects",
121-
"markdown-callouts",
122-
"markdown-include",
123-
"mkdocstrings",
124-
"mkdocs-jupyter",
125-
"pymdown-extensions",
126-
"ipywidgets",
127-
"widgetsnbextension",
128-
"xarray",
129-
"matplotlib",
130-
"h5netcdf",
131-
"pyproj",
81+
"jupyterlab >=3",
82+
"ipywidgets >=7.7.0",
83+
"widgetsnbextension >=3.6.0",
84+
# Prevent install of 1.6.0 because the module mkdocs.tests
85+
# is no longer exported, which causes mkdocs-jupyter to
86+
# break with a ModuleNotFoundError.
87+
# for notebook integrations and documentation examples
88+
"mkdocs >=1.2,!=1.6.0",
89+
"mkdocs-material >=7.1,<10.0",
90+
"mkdocs-redirects >=1.2.1",
91+
"markdown-callouts >=0.2.0",
92+
"markdown-include >=0.6",
93+
"mkdocs-jupyter >=0.19.0",
94+
"mkdocstrings[python] >=0.19.0",
95+
"pymdown-extensions >=9.2",
96+
"pygments >=2.11.1",
97+
"xarray >=2023.01",
98+
"matplotlib >=3.3",
99+
"h5netcdf >=0.11",
100+
"pyproj >=3.5.0;python<3.12",
101+
"pyproj >=3.6.1;python>=3.12",
102+
# The following error occurs when building the docs, so we must explicitly
103+
# include lxml-html-clean as a dev dependency until mkdocs-jupyter is updated:
104+
#
105+
# ImportError: lxml.html.clean module is now a separate project lxml_html_clean.
106+
# Install lxml[html_clean] or lxml_html_clean directly.
107+
#
108+
# See https://github.com/danielfrg/mkdocs-jupyter/issues/200
109+
# See https://github.com/danielfrg/mkdocs-jupyter/issues/197
110+
"lxml-html-clean >=0.1.1",
132111
]
133112

134-
[tool.poetry.group.dev.dependencies]
135113

136114
[build-system]
137115
requires = ["poetry-core>=1.0.0"]

0 commit comments

Comments
 (0)