-
Notifications
You must be signed in to change notification settings - Fork 1
/
pyproject.toml
130 lines (116 loc) · 3.8 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
[build-system]
requires = ["setuptools>=61.0", "versioningit~=2.0"]
build-backend = "setuptools.build_meta"
# Self-descriptive entries which should always be present
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
[project]
name = "red-molsim"
description = "Robust Equilibration Detection"
dynamic = ["version"]
readme = "README.md"
authors = [
{ name = "Finlay Clark", email = "[email protected]" }
]
license = { text = "MIT" }
# See https://pypi.org/classifiers/
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
]
requires-python = ">=3.8"
# Declare any run-time dependencies that should be installed with the package.
dependencies = [
"importlib-resources;python_version<'3.10'",
"numpy>=1.20.0",
"scipy>=1.6.0",
"matplotlib>=3.3.0",
"statsmodels>=0.12.0",
"numba>=0.52.0",
]
# Update the urls once the hosting is set up.
#[project.urls]
#"Source" = "https://github.com/fjclark/red/"
#"Documentation" = "https://red.readthedocs.io/"
[project.optional-dependencies]
dev = [
"mypy",
"pytest>=6.1.2",
"pytest-runner",
"pytest-env",
"ruff",
"pre-commit",
"types-PyYAML",
"mkdocs",
"mkdocs-material",
"mkdocs-gen-files",
"mkdocs-literate-nav",
"mkdocs-jupyter",
"mkdocstrings",
"mkdocstrings-python",
"black",
"mike",
"mkdocs-bibtex",
"build",
"twine",
]
[project.urls]
Homepage = "https://fjclark.github.io/red/latest/"
[tool.mypy]
exclude = 'tests/'
follow_imports = "silent"
ignore_missing_imports = true
strict = true
disable_error_code = "unused-ignore"
plugins = "numpy.typing.mypy_plugin"
[tool.ruff]
line-length = 100
[tool.ruff.lint]
ignore = ["PLR", "PLW", "C901"]
select = ["B","C","E","F","W","B9"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"red/tests/*.py" = ["F401", "F811"]
[tool.setuptools]
# This subkey is a beta stage development and keys may change in the future, see https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html for more details
#
# As of version 0.971, mypy does not support type checking of installed zipped
# packages (because it does not actually import the Python packages).
# We declare the package not-zip-safe so that our type hints are also available
# when checking client code that uses our (installed) package.
# Ref:
# https://mypy.readthedocs.io/en/stable/installed_packages.html?highlight=zip#using-installed-packages-with-mypy-pep-561
zip-safe = false
# Let setuptools discover the package in the current directory,
# but be explicit about non-Python files.
# See also:
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#setuptools-specific-configuration
# Note that behavior is currently evolving with respect to how to interpret the
# "data" and "tests" subdirectories. As of setuptools 63, both are automatically
# included if namespaces is true (default), even if the package is named explicitly
# (instead of using 'find'). With 'find', the 'tests' subpackage is discovered
# recursively because of its __init__.py file, but the data subdirectory is excluded
# with include-package-data = false and namespaces = false.
include-package-data = true
[tool.setuptools.packages.find]
namespaces = true
where = ["."]
# Ref https://setuptools.pypa.io/en/latest/userguide/datafiles.html#package-data
[tool.setuptools.package-data]
red = [
"py.typed",
"data/*.npy",
]
[tool.versioningit]
default-version = "1+unknown"
[tool.versioningit.format]
distance = "{base_version}+{distance}.{vcs}{rev}"
dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
[tool.versioningit.vcs]
# The method key:
method = "git" # <- The method name
# Parameters to pass to the method:
match = ["*"]
default-tag = "0.1.1"
[tool.versioningit.write]
file = "red/_version.py"