Previously almost all dependencies were listed in the main [tool.poetry.dependencies] section, with a few specified as part of extras for documentation generation and data refresh. If we weren't using Poetry for development, extras would make sense. But with Poetry, I believe dependency groups are a better alternative here. These are development-only dependencies, so there's no risk of them leaking out to downstream clients. I've reorganized the dependencies into 4 groups: the main one (in tool.poetry.dependencies -- these are the ones required for a 3rd party to install the package), plus test, docs, and refresh (these ones will only be available after poetry install-ing a development environment).
I loosened the sphinx dependency to ">=7.0.0". I don't see any obvious reason why that would be a problem, and it allows us to restore Python 3.8 compatibility. I also let the sphinx plugin dependencies be anything compatible ("*").
I removed a few dependencies that were declared but unused anywhere: typing-extensions and pydantic. These ultimately get brought in nonetheless as transitive dependencies (pydantic through curies, and typing-extensions through pydantic). But if we're not using them directly there's no need for use to declare them.
I don't believe there is any benefit in doing linting with two different python versions (especially one that's not supported by this library!) so I removed the matrix from the lint job of .github/workflows/main.yaml
Reformat files that hadn't been formatted with Black v24 yet.
Fixes #65
A few things going on here:
[tool.poetry.dependencies]
section, with a few specified as part of extras for documentation generation and data refresh. If we weren't using Poetry for development, extras would make sense. But with Poetry, I believe dependency groups are a better alternative here. These are development-only dependencies, so there's no risk of them leaking out to downstream clients. I've reorganized the dependencies into 4 groups: the main one (intool.poetry.dependencies
-- these are the ones required for a 3rd party to install the package), plus test, docs, and refresh (these ones will only be available afterpoetry install
-ing a development environment).sphinx
dependency to">=7.0.0"
. I don't see any obvious reason why that would be a problem, and it allows us to restore Python 3.8 compatibility. I also let thesphinx
plugin dependencies be anything compatible ("*"
).typing-extensions
andpydantic
. These ultimately get brought in nonetheless as transitive dependencies (pydantic
throughcuries
, andtyping-extensions
throughpydantic
). But if we're not using them directly there's no need for use to declare them.matrix
from thelint
job of.github/workflows/main.yaml