Development tools: static linting, type checking, and more #36
deltamarnix
started this conversation in
General
Replies: 1 comment 4 replies
-
It does not, everything is on pypi edit: except pymetis. AFAIK one can develop flopy with builtin IMO it's developer preference which kind of virtual env to use, ideally the package is agnostic to this choice. I just noticed pixi has facilities for managing Agreed on sticking to a standard setuptools build, and on linting and type checking. I have not used any of the mypy alternatives but mypy seems to be the most popular. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
What makes a software library a good package? We want to establish a stable API that doesn't change often. And we want to provide the user a clear insight in what we build and into what they can expect when they use it. Meaning that documentation is key, and source code should be well readable since we're open source.
I was looking to popular packages to keep our code base in shape: https://github.com/ml-tooling/best-of-python-dev. We might not need all of these different types of helpers, but some could be rather useful.
I want to propose to at least use the following packages:
ruff
mypy
. Which means that our public API should be type complete, so that it's clear which types of arguments we expect.pixi
for package management. If everything can stay within pypi, we might consider using apipenv
orvirtualenv
. Make it clear for developers how to install and use our package.sphinx
ormkdocs
. Deltares decided to move toquarto
, but it's not in this best-of list.setuptools
. Keeping things to the built-in offers might not be a wrong choice in this case, although there are many alternatives.ruff
.Let me know if you have any opinions that you want to share. Things that you actually wouldn't want to use.
Beta Was this translation helpful? Give feedback.
All reactions