-
Notifications
You must be signed in to change notification settings - Fork 7
Move dependency management to uv #590
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
b36f828
fe369bc
305387d
520a984
5e9c089
c0a38ea
8586f7b
ad85b60
ef50e26
98a98ef
4594bf6
f26d609
1e1ef90
1d11d49
210c56f
53155fa
73ae3a5
4d7fb10
e6716ee
09903f0
4134f68
6ab634e
61354d9
3762667
8177f2b
3923460
3e44f5a
c1f100d
e5be9c0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,88 @@ | ||
| [metadata] | ||
| name = demes | ||
| author = PopSim Consortium | ||
| license = ISC | ||
| # description = tools for describing demographic models" | ||
| long_description = file: README.md | ||
| long_description_content_type = text/markdown | ||
| url = https://github.com/popsim-consortium/demes-python | ||
| classifiers = | ||
| Development Status :: 4 - Beta | ||
| License :: OSI Approved :: ISC License (ISCL) | ||
| Operating System :: OS Independent | ||
| Intended Audience :: Science/Research | ||
| Programming Language :: Python :: 3 | ||
| Topic :: Scientific/Engineering | ||
| Topic :: Scientific/Engineering :: Bio-Informatics | ||
| project_urls = | ||
| Documentation = https://popsim-consortium.github.io/demes-docs/ | ||
| Source Code = https://github.com/popsim-consortium/demes-python/ | ||
| Bug Tracker = https://github.com/popsim-consortium/demes-python/issues | ||
|
|
||
| [options] | ||
| packages = demes | ||
| zip_safe = False # https://mypy.readthedocs.io/en/latest/installed_packages.html | ||
| include_package_data = True | ||
| python_requires = >=3.7 | ||
| install_requires = | ||
| attrs >= 20.3.0 # for attr.asdict(value_serializer=...) | ||
| ruamel.yaml >= 0.15.78 # attempts to install earlier versions failed | ||
| setup_requires = | ||
| setuptools | ||
| setuptools_scm | ||
|
|
||
| [options.entry_points] | ||
| console_scripts = | ||
| demes = demes.__main__:cli | ||
|
|
||
| [flake8] | ||
| extend-exclude = docs/_build | ||
| # black-compatible settings | ||
| max-line-length = 88 | ||
| extend-ignore = E203, W503 | ||
| # There's no way to ignore specific warnings in the files themselves. | ||
| # "flake8: noqa: F401" on its own line will just ignore all warnings. | ||
| per-file-ignores = | ||
| tests/test_import_visibility.py:F403,F405 | ||
|
|
||
| [mypy] | ||
| files = demes, tests | ||
| warn_unused_ignores = True | ||
| show_error_codes = True | ||
| # We support python 3.7, so should really be using 3.7 here, | ||
| # but we're forced to set this higher because of positional-only | ||
| # type annotations in numpy (which are only supported in >=3.8). | ||
| python_version = 3.8 | ||
|
|
||
| [mypy-numpy.*] | ||
| ignore_missing_imports = True | ||
|
|
||
| [mypy-ruamel.*] | ||
| ignore_missing_imports = True | ||
|
|
||
| [tool.black] | ||
| target_version = py37 | ||
|
|
||
| [tool:pytest] | ||
| addopts = -n auto | ||
| testpaths = tests | ||
|
|
||
| [pylint.messages_control] | ||
| disable = | ||
| chained-comparison, | ||
| fixme, | ||
| invalid-name, | ||
| missing-docstring, | ||
| missing-module-docstring, | ||
| superfluous-parens, | ||
| protected-access, | ||
| too-few-public-methods, | ||
| too-many-arguments, | ||
| too-many-branches, | ||
| too-many-instance-attributes, | ||
| too-many-lines, | ||
| too-many-locals, | ||
| too-many-nested-blocks, | ||
| too-many-statements, | ||
| unspecified-encoding, | ||
| unused-argument, | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,87 @@ | ||
| [build-system] | ||
| # We need setup.cfg support, which setuptools introduced in 30.3.0. | ||
| requires = ["setuptools>=30.3.0", "wheel", "setuptools_scm"] | ||
|
|
||
| [project] | ||
| name = "demes" | ||
| authors = [ | ||
| {name = "PopSim Consortium", email = "krthornt@uci.edu"} | ||
| ] | ||
| description = "tools for describing demographic models" | ||
| readme = {file = "README.md", content-type = "text/markdown"} | ||
| license = {text = "ISC"} | ||
| classifiers = [ | ||
| "Development Status :: 4 - Beta", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No longer in beta.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Our version number is still < 1?? |
||
| "License :: OSI Approved :: ISC License (ISCL)", | ||
| "Operating System :: OS Independent", | ||
| "Intended Audience :: Science/Research", | ||
| "Programming Language :: Python :: 3", | ||
| "Topic :: Scientific/Engineering", | ||
| "Topic :: Scientific/Engineering :: Bio-Informatics" | ||
| ] | ||
|
|
||
| requires-python = ">=3.10" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This doesn't match the
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct -- the _setup file is to rename it so that it doesn't confuse uv / conflict with pyproject. More generally, our pinning to 3.7 was wrong due to other pinned dependencies that this PR revealed. (Briefly, our pinnings related to docs required >= 3.10). |
||
|
|
||
| dynamic = ["version"] | ||
|
|
||
| dependencies = [ | ||
| "attrs>=20.3.0", | ||
| "ruamel.yaml>=0.15.78" | ||
| ] | ||
|
|
||
| [project.urls] | ||
| Repository = "https://github.com/popsim-consortium/demes-python" | ||
| Documentation = "https://popsim-consortium.github.io/demes-docs/" | ||
| Issues = "https://github.com/popsim-consortium/demes-python/issues" | ||
|
|
||
| [project.scripts] | ||
| demes = "demes.__main__:cli" | ||
|
|
||
| [dependency-groups] | ||
| test = [ | ||
| "numpy", | ||
| "pytest==8.3.3", | ||
| "pytest-cov", | ||
| "pytest-xdist" | ||
| ] | ||
|
|
||
| lint = [ | ||
| "black==24.10.0", | ||
| "flake8==7.1.1", | ||
| "mypy==1.13.0", | ||
| {include-group = "test"}, | ||
| ] | ||
|
|
||
| docs = [ | ||
| "demesdraw", | ||
| "jupyter-book==0.15.1", | ||
| "piccolo_theme", | ||
| "sphinx_issues", | ||
| "sphinxcontrib-programoutput", | ||
| # Below here are hacks to make the docs | ||
| # build until we can deal w/updating | ||
| # jupyter-book | ||
| "ipython==8.29.0" | ||
| ] | ||
|
|
||
| [tool.setuptools_scm] | ||
| write_to = "demes/_version.py" | ||
|
|
||
| # [tool.flake8] | ||
| # extend-exclude = docs/_build | ||
| # # black-compatible settings | ||
| # max-line-length = 88 | ||
| # extend-ignore = E203, W503 | ||
| # # There's no way to ignore specific warnings in the files themselves. | ||
| # # "flake8: noqa: F401" on its own line will just ignore all warnings. | ||
| # per-file-ignores = | ||
| # tests/test_import_visibility.py:F403,F405 | ||
|
|
||
| # [tool.mypy] | ||
| # files = ["demes", "tests"] | ||
| # warn_unused_ignores = true | ||
| # show_error_codes = true | ||
| # # We support python 3.7, so should really be using 3.7 here, | ||
| # # but we're forced to set this higher because of positional-only | ||
| # # type annotations in numpy (which are only supported in >=3.8). | ||
| # python_version = 3.8 | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reckon we're out of beta now.