1- [bdist_wheel]
2- universal = 1
1+ # --- Project configuration -------------------------------------------------
32
43[metadata]
54version = attr: fs._version.__version__
@@ -60,6 +59,11 @@ exclude = tests
6059[options.package_data]
6160fs = py.typed
6261
62+ [bdist_wheel]
63+ universal = 1
64+
65+ # --- Individual linter configuration ---------------------------------------
66+
6367[pydocstyle]
6468inherit = false
6569ignore = D102,D105,D200,D203,D213,D406,D407
@@ -83,6 +87,24 @@ warn_return_any = false
8387[mypy-fs.test]
8488disallow_untyped_defs = false
8589
90+ [flake8]
91+ extend-ignore = E203,E402,W503
92+ max-line-length = 88
93+ per-file-ignores =
94+ fs/__init__.py:F401
95+ fs/*/__init__.py:F401
96+ tests/*:E501
97+ fs/opener/*:F811
98+ fs/_fscompat.py:F401
99+
100+ [isort]
101+ default_section = THIRD_PARTY
102+ known_first_party = fs
103+ known_standard_library = typing
104+ line_length = 88
105+
106+ # --- Test and coverage configuration ------------------------------------------
107+
86108[coverage:run]
87109branch = true
88110omit = fs/test.py
@@ -102,18 +124,63 @@ exclude_lines =
102124markers =
103125 slow: marks tests as slow (deselect with ' -m " not slow" ' )
104126
105- [flake8]
106- extend-ignore = E203,E402,W503
107- max-line-length = 88
108- per-file-ignores =
109- fs/__init__.py:F401
110- fs/*/__init__.py:F401
111- tests/*:E501
112- fs/opener/*:F811
113- fs/_fscompat.py:F401
127+ # --- Tox automation configuration ---------------------------------------------
114128
115- [isort]
116- default_section = THIRD_PARTY
117- known_first_party = fs
118- known_standard_library = typing
119- line_length = 88
129+ [tox:tox]
130+ envlist = py{27,34}{,-scandir}, py{35,36,37,38,39}, pypy{27,36,37}, typecheck, codestyle, docstyle, codeformat
131+ sitepackages = false
132+ skip_missing_interpreters = true
133+ requires =
134+ setuptools >=38.3.0
135+
136+ [testenv]
137+ commands = pytest --cov={toxinidir}/fs {posargs} {toxinidir}/tests
138+ deps =
139+ -rtests/requirements.txt
140+ pytest-cov~=2.11
141+ coverage~=5.0
142+ py{36,37,38,39}: pytest~=6.2
143+ py{27,34}: pytest~=4.6
144+ py{36,37,38,39}: pytest-randomly~=3.5
145+ py{27,34}: pytest-randomly~=1.2
146+ scandir: .[scandir]
147+ !scandir: .
148+
149+ [testenv:typecheck]
150+ commands = mypy --config-file {toxinidir}/setup.cfg {toxinidir}/fs
151+ deps =
152+ .
153+ mypy==0.800
154+
155+ [testenv:codestyle]
156+ commands = flake8 --config={toxinidir}/setup.cfg {toxinidir}/fs {toxinidir}/tests
157+ deps =
158+ flake8==3.7.9
159+ #flake8-builtins==1.5.3
160+ flake8-bugbear==19.8.0
161+ flake8-comprehensions==3.1.4
162+ flake8-mutable==1.2.0
163+ flake8-tuple==0.4.0
164+
165+ [testenv:codeformat]
166+ commands = black --check {toxinidir}/fs
167+ deps =
168+ black==20.8b1
169+
170+ [testenv:docstyle]
171+ commands = pydocstyle --config={toxinidir}/setup.cfg {toxinidir}/fs
172+ deps =
173+ pydocstyle==5.1.1
174+
175+ [gh-actions]
176+ python =
177+ 2.7: py27, py27-scandir
178+ 3.4: py34, py34-scandir
179+ 3.5: py35
180+ 3.6: py36
181+ 3.7: py37
182+ 3.8: py38
183+ 3.9: py39
184+ pypy-2.7: pypy27
185+ pypy-3.6: pypy36
186+ pypy-3.7: pypy37
0 commit comments