-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathsetup.cfg
137 lines (121 loc) · 3.35 KB
/
setup.cfg
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
131
132
133
134
135
136
137
[metadata]
name = ibek
description = IOC Builder for EPICS and Kubernetes
url = https://github.com/epics-containers/ibek
author = Tom Cobb
author_email = tom.cobb@diamond.ac.uk
license = Apache License 2.0
long_description = file: README.rst
long_description_content_type = text/x-rst
classifiers =
License :: OSI Approved :: Apache Software License
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
[options]
python_requires = >=3.8
packages = find:
# =src is interpreted as {"": "src"}
# as per recommendation here https://hynek.me/articles/testing-packaging/
package_dir =
=src
setup_requires =
setuptools_scm[toml]>=6.2
install_requires =
typing-extensions
apischema>=0.15
typer
ruamel.yaml
jsonschema
jinja2
# Specify any package dependencies below.
# install_requires =
# numpy
# scipy
[options.extras_require]
# For development tests/docs
dev =
black==22.10.0
flake8-isort
isort>5.0
mypy
pipdeptree
pre-commit
pydata-sphinx-theme < 0.10.1
pytest-cov
setuptools_scm[toml]>=6.2
sphinx-apischema
sphinx-rtd-theme-github-versions
sphinx-autobuild
sphinx-copybutton
sphinx-design
tox
tox-direct
types-mock
[options.packages.find]
where = src
# Specify any package data to be included in the wheel below.
[options.package_data]
ibek =
helm-template/*/*
helm-template/*
templates/*
[options.entry_points]
# Include a command line script
console_scripts =
ibek = ibek.__main__:cli
[mypy]
# Ignore missing stubs for modules we use
ignore_missing_imports = True
[isort]
profile=black
float_to_top=true
[flake8]
# Make flake8 respect black's line length (default 88),
max-line-length = 88
extend-ignore =
E203, # See https://github.com/PyCQA/pycodestyle/issues/373
F811, # support typing.overload decorator
F722, # allow Annotated[typ, some_func("some string")]
exclude =
.tox
venv
[tool:pytest]
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
addopts =
--tb=native -vv --doctest-modules --doctest-glob="*.rst"
--cov=ibek --cov-report term --cov-report xml:cov.xml
# https://iscinumpy.gitlab.io/post/bound-version-constraints/#watch-for-warnings
filterwarnings = error
# Doctest python code in docs, python code in src docstrings, test functions in tests
testpaths =
docs src tests
[coverage:run]
data_file = /tmp/ibek.coverage
[coverage:paths]
# Tests are run from installed location, map back to the src directory
source =
src
**/site-packages/
# Use tox to provide parallel linting and testing
# NOTE that we pre-install all tools in the dev dependencies (including tox).
# Hence the use of allowlist_externals instead of using the tox virtualenvs.
# This ensures a match between developer time tools in the IDE and tox tools.
[tox:tox]
skipsdist = True
[testenv:{pre-commit,mypy,pytest,docs}]
# Don't create a virtualenv for the command, requires tox-direct plugin
direct = True
passenv = *
allowlist_externals =
pytest
pre-commit
mypy
sphinx-build
sphinx-autobuild
commands =
pytest: pytest {posargs}
mypy: mypy src tests {posargs}
pre-commit: pre-commit run --all-files {posargs}
docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html