-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsetup.cfg
146 lines (128 loc) · 3.71 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
138
139
140
141
142
143
144
145
146
[metadata]
name = EPICSPyClientPerformance
description = One line description of your module
url = https://github.com/ajgdls/EPICSPyClientPerformance
author = Alan Greer
author_email = [email protected]
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
[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
# Specify any package dependencies below.
install_requires =
aioca==1.4
caproto==0.8.1
cothread==2.18.1
epicscorelibs==7.0.7.99.0.0
epicsdbbuilder==1.5
nose2==0.12.0
p4p==4.1.5
Pillow==9.2.0
ply==3.11
psutil==5.9.2
pvapy==5.1.0
pvxslibs==1.1.2
pyasn1==0.4.8
pycryptodome==3.15.0
pyepics==3.5.1
cachannel==3.2.0
rsa==4.9
softioc==4.2.0
[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-autobuild
sphinx-copybutton
sphinx-design
tox
tox-direct
types-mock
[options.packages.find]
where = src
# Don't include our tests directory in the distribution
exclude = tests
# Specify any package data to be included in the wheel below.
# [options.package_data]
# EPICSPyClientPerformance =
# subpackage/*.yaml
[options.entry_points]
# Include a command line script
console_scripts =
example_ioc = EPICSPyClientPerformance.example_ioc:main
client_test = EPICSPyClientPerformance.__main__:main
[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=EPICSPyClientPerformance --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/EPICSPyClientPerformance.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.
# Setting TOX_DIRECT=1 in the environment will make this even faster
[tox:tox]
skipsdist = True
[testenv:pytest]
allowlist_externals = pytest
commands = pytest {posargs}
[testenv:mypy]
allowlist_externals = mypy
commands = mypy src tests {posargs}
[testenv:pre-commit]
allowlist_externals = pre-commit
commands = pre-commit run --all-files {posargs}
[testenv:docs]
allowlist_externals =
sphinx-build
sphinx-autobuild
commands = sphinx-{posargs:build -EW --keep-going} -T docs build/html