-
-
Notifications
You must be signed in to change notification settings - Fork 178
/
setup.cfg
191 lines (166 loc) · 4.65 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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# --- Project configuration -------------------------------------------------
[metadata]
version = attr: fs._version.__version__
name = fs
author = Will McGugan
author_email = [email protected]
maintainer = Martin Larralde
maintainer_email = [email protected]
url = https://github.com/PyFilesystem/pyfilesystem2
license = MIT
license_file = LICENSE
description = Python's filesystem abstraction layer
long_description = file: README.md
long_description_content_type = text/markdown
platform = any
classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
License :: OSI Approved :: MIT License
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 2.7
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
Programming Language :: Python :: 3.10
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: Implementation :: PyPy
Topic :: System :: Filesystems
Typing :: Typed
project_urls =
Bug Reports = https://github.com/PyFilesystem/pyfilesystem2/issues
Documentation = https://pyfilesystem2.readthedocs.io/en/latest/
Wiki = https://www.pyfilesystem.org/
[options]
zip_safe = false
packages = find:
setup_requires =
setuptools >=38.3.0
install_requires =
appdirs~=1.4.3
setuptools
six ~=1.10
enum34 ~=1.1.6 ; python_version < '3.4'
typing ~=3.6 ; python_version < '3.6'
backports.os ~=0.1 ; python_version < '3.0'
[options.extras_require]
scandir =
scandir~=1.5 ; python_version < '3.5'
[options.packages.find]
exclude = tests
[options.package_data]
fs = py.typed
[bdist_wheel]
universal = 1
# --- Individual linter configuration ---------------------------------------
[pydocstyle]
inherit = false
ignore = D102,D105,D200,D203,D213,D406,D407
match-dir = (?!tests)(?!docs)[^\.].*
match = (?!test)(?!setup)[^\._].*\.py
[mypy]
ignore_missing_imports = true
[mypy-fs.*]
disallow_any_decorated = false
disallow_any_generics = false
disallow_any_unimported = true
disallow_subclassing_any = true
disallow_untyped_calls = false
disallow_untyped_defs = false
ignore_missing_imports = false
warn_unused_ignores = false
warn_return_any = false
[mypy-fs.test]
disallow_untyped_defs = false
[flake8]
extend-ignore = E203,E402,W503
max-line-length = 88
per-file-ignores =
fs/__init__.py:F401
fs/*/__init__.py:F401
tests/*:E501
fs/opener/*:F811
fs/_fscompat.py:F401
fs/_pathcompat.py:C401
[isort]
default_section = THIRDPARTY
known_first_party = fs
known_standard_library = sys, typing
line_length = 88
profile = black
skip_gitignore = true
# --- Test and coverage configuration ------------------------------------------
[coverage:run]
branch = true
omit = fs/test.py
source = fs
relative_files = true
parallel = true
[coverage:report]
show_missing = true
skip_covered = true
exclude_lines =
pragma: no cover
if False:
it typing.TYPE_CHECKING:
@typing.overload
@overload
[tool:pytest]
markers =
slow: marks tests as slow (deselect with '-m "not slow"')
# --- Tox automation configuration ---------------------------------------------
[tox:tox]
envlist = py{27,34}{,-scandir}, py{35,36,37,38,39,310}, pypy{27,36,37}, typecheck, codestyle, docstyle, codeformat
sitepackages = false
skip_missing_interpreters = true
requires =
setuptools >=38.3.0
[testenv]
commands = python -m coverage run --rcfile {toxinidir}/setup.cfg -m pytest {posargs} {toxinidir}/tests
deps =
-rtests/requirements.txt
coverage~=5.0
py{35,36,37,38,39,310,py36,py37}: pytest~=6.0
py{27,34,py27}: pytest~=4.6
py{35,36,37,38,39,310,py36,py37}: pytest-randomly~=3.5
py{27,34,py27}: pytest-randomly~=1.2
scandir: .[scandir]
!scandir: .
[testenv:typecheck]
commands = mypy --config-file {toxinidir}/setup.cfg {toxinidir}/fs
deps =
.
mypy==0.800
[testenv:codestyle]
commands = flake8 --config={toxinidir}/setup.cfg {toxinidir}/fs {toxinidir}/tests
deps =
flake8==3.7.9
#flake8-builtins==1.5.3
flake8-bugbear==19.8.0
flake8-comprehensions==3.1.4
flake8-mutable==1.2.0
flake8-tuple==0.4.0
[testenv:codeformat]
commands = black --check {toxinidir}/fs
deps =
black==22.3.0
[testenv:docstyle]
commands = pydocstyle --config={toxinidir}/setup.cfg {toxinidir}/fs
deps =
pydocstyle==5.1.1
[gh-actions]
python =
2.7: py27, py27-scandir
3.4: py34, py34-scandir
3.5: py35
3.6: py36
3.7: py37
3.8: py38
3.9: py39
3.10: py310
pypy-2.7: pypy27
pypy-3.6: pypy36
pypy-3.7: pypy37