forked from smarie/python-genbadge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.cfg
162 lines (147 loc) · 5.16 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# See https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files
# And this great example : https://github.com/Kinto/kinto/blob/master/setup.cfg
[metadata]
name = genbadge
description = Generate badges for tools that do not provide one.
description-file = README.md
license = BSD 3-Clause
long_description = file: docs/long_description.md
long_description_content_type=text/markdown
keywords = commandline cli generate badge shield svg flake8 pytest test coverage markdown
author = Sylvain MARIE <[email protected]>
maintainer = Sylvain MARIE <[email protected]>
url = https://github.com/smarie/python-genbadge
# download_url = https://github.com/smarie/python-genbadge/tarball/master >> do it in the setup.py to get the right version
classifiers =
# See https://pypi.python.org/pypi?%3Aaction=list_classifiers
Development Status :: 5 - Production/Stable
Intended Audience :: Education
# Intended Audience :: Financial and Insurance Industry
# Intended Audience :: Science/Research
Intended Audience :: Developers
Intended Audience :: Information Technology
License :: OSI Approved :: BSD License
Topic :: Software Development :: Libraries :: Python Modules
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
[options]
# one day these will be able to come from requirement files, see https://github.com/pypa/setuptools/issues/1951. But will it be better ?
setup_requires =
setuptools_scm
pytest-runner
install_requires =
click
pillow
requests
# note: do not use double quotes in these, this triggers a weird bug in PyCharm in debug mode only
pathlib2;python_version<'3.2'
tests_require =
pytest
; flake8
; coverage
; pytest-html
; requests
; xunitparser
# for some reason these pytest dependencies were not declared in old versions of pytest
six;python_version<'3.6'
attr;python_version<'3.6'
pluggy;python_version<'3.6'
# test_suite = tests --> no need apparently
#
zip_safe = False
# explicitly setting zip_safe=False to avoid downloading `ply` see https://github.com/smarie/python-getversion/pull/5
# and makes mypy happy see https://mypy.readthedocs.io/en/latest/installed_packages.html
packages = find:
# see [options.packages.find] below
# IMPORTANT: DO NOT set the `include_package_data` flag !! It triggers inclusion of all git-versioned files
# see https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
# include_package_data = True
[options.packages.find]
exclude =
contrib
docs
*tests*
[options.package_data]
* = py.typed, *.pyi, *.svg, *.ttf
# Optional dependencies that can be installed with e.g. $ pip install -e .[dev,test]
[options.extras_require]
tests =
defusedxml
; xunitparser
coverage =
defusedxml
flake8 =
flake8-html
all =
defusedxml
; xunitparser
flake8-html
# -------------- Packaging -----------
[options.entry_points]
console_scripts =
genbadge = genbadge.main:genbadge
# [egg_info] >> already covered by setuptools_scm
[bdist_wheel]
# Code is written to work on both Python 2 and Python 3.
universal=1
# ------------- Others -------------
# In order to be able to execute 'python setup.py test'
# from https://docs.pytest.org/en/latest/goodpractices.html#integrating-with-setuptools-python-setup-py-test-pytest-runner
[aliases]
test = pytest
# pytest default configuration
[tool:pytest]
testpaths = genbadge/tests/
addopts =
--verbose
--doctest-modules
--ignore-glob='**/_*.py'
# we need the 'always' for python 2 tests to work see https://github.com/pytest-dev/pytest/issues/2917
filterwarnings =
always
; ignore::UserWarning
# Coverage config
[coverage:run]
branch = True
omit = *tests*
# this is done in nox.py (github actions) or ci_tools/run_tests.sh (travis)
# source = genbadge
# command_line = -m pytest --junitxml="reports/pytest_reports/pytest.xml" --html="reports/pytest_reports/pytest.html" -v genbadge/tests/
[coverage:report]
fail_under = 70
show_missing = True
exclude_lines =
# this line for all the python 2 not covered lines
except ImportError:
# we have to repeat this when exclude_lines is set
pragma: no cover
# Done in nox.py
# [coverage:html]
# directory = site/reports/coverage_reports
# [coverage:xml]
# output = site/reports/coverage_reports/coverage.xml
[flake8]
max-line-length = 120
extend-ignore = D, E203 # D: Docstring errors, E203: see https://github.com/PyCQA/pycodestyle/issues/373
copyright-check = True
copyright-regexp = ^\#\s+Authors:\s+Sylvain MARIE <sylvain\.marie@se\.com>\n\#\s+\+\sAll\scontributors\sto\s<https://github\.com/smarie/python\-genbadge>\n\#\n\#\s\sLicense:\s3\-clause\sBSD,\s<https://github\.com/smarie/python\-genbadge/blob/master/LICENSE>
exclude =
.git
.github
.nox
.pytest_cache
ci_tools
docs
tests
noxfile.py
setup.py
genbadge/tests
_version.py
genbadge/_version.py