Skip to content

Use dependency groups (PEP 735), remove a few extras, add uv-sync CI check - #313

Open
mwtoews wants to merge 1 commit into
GeoStat-Framework:mainfrom
mwtoews:pep-735
Open

mwtoews wants to merge 1 commit into
GeoStat-Framework:mainfrom
mwtoews:pep-735

Conversation

@mwtoews

@mwtoews mwtoews commented Sep 24, 2026 •

Copy link
Copy Markdown

The primary change in this PR is to use dependency groups (PEP 735) which is a standard Python feature to create groups, usually for developers. These should be used instead of optional dependencies, which are published to PyPI and are usually for end-users. Dependency groups are understood by modern Python development tools like uv, or since pip v25.1 via pip install --group <name>.

  • Keep plot and sklearn extras, so that (e.g.) pip install pykrige[plot] still works for end-users
  • Remove doc, lint and test extras, because end-users don't need these
  • Add build dependency group to repeat the build-system.requires contents of all the tools used build and compile the package; this is mostly useful when using pip's --no-build-isolation flag, but also when using cython commands.
  • Add docs dependency group for building docs. The plural "docs" is to match the directory name. This change needs some adjustment to .readthedocs.yml to work.
  • Add lint unchanged from the lint extra.
  • Add tests dependency group for adding tools to run tests. Again, the plural "tests" is to match the directory name. This group name can be used by cibuildwheel.
  • Add dev dependency group which adds most of the other groups, except docs (but this can be added, if desired). Note that uv sync treats the dev group specially, and is included by default.

Other changes:

  • The wheel package is not needed as a build dependency anymore, so remove it.
  • Add a uv-sync CI check to ensure that dependencies and dependency groups declared for this project are consistent and resolvable.
  • Add *.lock to .gitignore to ignore various lock files from pixi, pipenv and uv.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant