Extracting Ns._process_flavor_params() and creating unit test
[osm/RO.git] / tox.ini
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17
18 [tox]
19 envlist = black, flake8, safety
20
21 [tox:jenkins]
22 toxworkdir = /tmp/.tox
23
24 [testenv]
25 usedevelop = True
26 basepython = python3
27 setenv = VIRTUAL_ENV={envdir}
28 PYTHONDONTWRITEBYTECODE = 1
29 deps = -r{toxinidir}/requirements.txt
30 parallel_show_output = true
31
32
33 #######################################################################################
34 [testenv:release_notes]
35 deps = reno
36 skip_install = true
37 commands =
38 reno new {posargs:new_feature}
39
40
41 #######################################################################################
42 [testenv:black]
43 deps = black
44 skip_install = true
45 commands =
46 black --check --diff NG-RO
47 black --check --diff RO-plugin
48 black --check --diff RO-SDN-arista_cloudvision
49 black --check --diff RO-SDN-dpb
50 black --check --diff RO-SDN-dynpac
51 black --check --diff RO-SDN-floodlight_openflow
52 black --check --diff RO-SDN-ietfl2vpn
53 black --check --diff RO-SDN-juniper_contrail
54 black --check --diff RO-SDN-odl_openflow
55 black --check --diff RO-SDN-onos_openflow
56 black --check --diff RO-SDN-onos_vpls
57 black --check --diff RO-VIM-aws
58 black --check --diff RO-VIM-azure
59 black --check --diff RO-VIM-fos
60 black --check --diff RO-VIM-openstack
61 black --check --diff RO-VIM-openvim
62 black --check --diff RO-VIM-vmware
63 black --check --diff RO-VIM-gcp
64 black --check --diff integration-tests
65
66
67 #######################################################################################
68 [testenv:cover]
69 deps = {[testenv]deps}
70 -r{toxinidir}/requirements-dev.txt
71 -r{toxinidir}/requirements-test.txt
72 skip_install = true
73 whitelist_externals = sh
74 commands =
75 sh -c 'rm -f nosetests.xml'
76 coverage erase
77 # NG-RO
78 nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
79 sh -c 'mv .coverage .coverage_ng_ro'
80 # RO-plugin
81 nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
82 sh -c 'mv .coverage .coverage_ro_plugin'
83 # RO-SDN-arista_cloudvision
84 nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
85 sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
86 # RO-SDN-dpb
87 nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
88 sh -c 'mv .coverage .coverage_rosdn_dpb'
89 # RO-SDN-dynpac
90 nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
91 sh -c 'mv .coverage .coverage_rosdn_dynpac'
92 # RO-SDN-floodlight_openflow
93 nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
94 sh -c 'mv .coverage .coverage_rosdn_floodlightof'
95 # RO-SDN-ietfl2vpn
96 nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
97 sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
98 # RO-SDN-juniper_contrail
99 nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
100 sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
101 # RO-SDN-odl_openflow
102 nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
103 sh -c 'mv .coverage .coverage_rosdn_odlof'
104 # RO-SDN-onos_openflow
105 nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
106 sh -c 'mv .coverage .coverage_rosdn_onosof'
107 # RO-SDN-onos_vpls
108 nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
109 sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
110 # RO-VIM-aws
111 nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
112 sh -c 'mv .coverage .coverage_rovim_aws'
113 # RO-VIM-azure
114 nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
115 sh -c 'mv .coverage .coverage_rovim_azure'
116 # RO-VIM-fos
117 nose2 -C --coverage RO-VIM-fos/osm_rovim_fos -s RO-VIM-fos/osm_rovim_fos
118 sh -c 'mv .coverage .coverage_rovim_fos'
119 # RO-VIM-openstack
120 # nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
121 # sh -c 'mv .coverage .coverage_rovim_openstack'
122 # RO-VIM-openvim
123 nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
124 sh -c 'mv .coverage .coverage_rovim_openvim'
125 # RO-VIM-vmware
126 # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
127 # sh -c 'mv .coverage .coverage_rovim_vmware'
128 # RO-VIM-gcp
129 nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp -s RO-VIM-gcp/osm_rovim_gcp
130 sh -c 'mv .coverage .coverage_rovim_gcp'
131 # Combine results and generate reports
132 coverage combine .coverage_ng_ro .coverage_ro_plugin .coverage_rosdn_arista_cloudvision .coverage_rosdn_dpb .coverage_rosdn_dynpac .coverage_rosdn_floodlightof .coverage_rosdn_ietfl2vpn .coverage_rosdn_juniper_contrail .coverage_rosdn_odlof .coverage_rosdn_onos_vpls .coverage_rosdn_onosof .coverage_rovim_aws .coverage_rovim_azure .coverage_rovim_fos .coverage_rovim_openvim .coverage_rovim_gcp # .coverage_rovim_openstack .coverage_rovim_vmware
133 coverage report --omit='*tests*'
134 coverage html -d ./cover --omit='*tests*'
135 coverage xml -o coverage.xml --omit='*tests*'
136
137
138 #######################################################################################
139 [testenv:flake8]
140 deps = flake8
141 skip_install = true
142 commands =
143 flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
144 - flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
145 - flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
146 - flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
147 - flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
148 - flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
149 - flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
150 - flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
151 - flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
152 - flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
153 - flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
154 - flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
155 - flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
156 - flake8 RO-VIM-fos/osm_rovim_fos/ RO-VIM-fos/setup.py
157 - flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
158 - flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
159 - flake8 RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py RO-VIM-vmware/setup.py
160 - flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
161 - flake8 integration-tests/
162
163
164 #######################################################################################
165 [testenv:pylint]
166 deps = {[testenv]deps}
167 -r{toxinidir}/requirements-dev.txt
168 -r{toxinidir}/requirements-test.txt
169 pylint
170 skip_install = true
171 commands =
172 - pylint -E NG-RO/osm_ng_ro
173 - pylint -E RO-plugin/osm_ro_plugin
174 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
175 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
176 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
177 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
178 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
179 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
180 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
181 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
182 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
183 - pylint -E RO-VIM-aws/osm_rovim_aws
184 - pylint -E RO-VIM-azure/osm_rovim_azure
185 - pylint -E RO-VIM-fos/osm_rovim_fos
186 - pylint -E RO-VIM-openstack/osm_rovim_openstack
187 - pylint -E RO-VIM-openvim/osm_rovim_openvim
188 - pylint -E RO-VIM-vmware/osm_rovim_vmware
189 - pylint -E RO-VIM-gcp/osm_rovim_gcp
190
191
192 #######################################################################################
193 [testenv:safety]
194 setenv =
195 LC_ALL=C.UTF-8
196 LANG=C.UTF-8
197 deps = {[testenv]deps}
198 safety
199 skip_install = true
200 commands =
201 - safety check --full-report
202
203
204 #######################################################################################
205 [testenv:pip-compile]
206 deps = pip-tools==5.5.0
207 skip_install = true
208 whitelist_externals = sh
209 commands =
210 - sh -c "for file in requirements*.in ; do pip-compile -rU --no-header $file ;\
211 out=`echo $file | sed 's/.in/.txt/'` ; \
212 sed -i -e '1 e head -16 tox.ini' $out ;\
213 done"
214
215
216 #######################################################################################
217 [testenv:dist_ng_ro]
218 deps = {[testenv]deps}
219 -r{toxinidir}/requirements-dist.txt
220 skip_install = true
221 whitelist_externals = sh
222 changedir = {toxinidir}/NG-RO
223 commands =
224 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
225 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
226 python3 setup.py --command-packages=stdeb.command sdist_dsc
227 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
228
229
230 #######################################################################################
231 [testenv:dist_ro_plugin]
232 deps = {[testenv]deps}
233 -r{toxinidir}/requirements-dist.txt
234 skip_install = true
235 whitelist_externals = sh
236 changedir = {toxinidir}/RO-plugin
237 commands =
238 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
239 python3 setup.py --command-packages=stdeb.command sdist_dsc
240 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
241
242
243 #######################################################################################
244 [testenv:dist_ro_sdn_arista_cloudvision]
245 deps = {[testenv]deps}
246 -r{toxinidir}/requirements-dist.txt
247 skip_install = true
248 whitelist_externals = sh
249 changedir = {toxinidir}/RO-SDN-arista_cloudvision
250 commands =
251 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
252 python3 setup.py --command-packages=stdeb.command sdist_dsc
253 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
254
255
256 #######################################################################################
257 [testenv:dist_ro_sdn_dpb]
258 deps = {[testenv]deps}
259 -r{toxinidir}/requirements-dist.txt
260 skip_install = true
261 whitelist_externals = sh
262 changedir = {toxinidir}/RO-SDN-dpb
263 commands =
264 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
265 python3 setup.py --command-packages=stdeb.command sdist_dsc
266 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
267
268
269 #######################################################################################
270 [testenv:dist_ro_sdn_dynpac]
271 deps = {[testenv]deps}
272 -r{toxinidir}/requirements-dist.txt
273 skip_install = true
274 whitelist_externals = sh
275 changedir = {toxinidir}/RO-SDN-dynpac
276 commands =
277 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
278 python3 setup.py --command-packages=stdeb.command sdist_dsc
279 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
280
281
282 #######################################################################################
283 [testenv:dist_ro_sdn_floodlight_of]
284 deps = {[testenv]deps}
285 -r{toxinidir}/requirements-dist.txt
286 skip_install = true
287 whitelist_externals = sh
288 changedir = {toxinidir}/RO-SDN-floodlight_openflow
289 commands =
290 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
291 python3 setup.py --command-packages=stdeb.command sdist_dsc
292 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
293
294
295 #######################################################################################
296 [testenv:dist_ro_sdn_ietfl2vpn]
297 deps = {[testenv]deps}
298 -r{toxinidir}/requirements-dist.txt
299 skip_install = true
300 whitelist_externals = sh
301 changedir = {toxinidir}/RO-SDN-ietfl2vpn
302 commands =
303 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
304 python3 setup.py --command-packages=stdeb.command sdist_dsc
305 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
306
307
308 #######################################################################################
309 [testenv:dist_ro_sdn_juniper_contrail]
310 deps = {[testenv]deps}
311 -r{toxinidir}/requirements-dist.txt
312 skip_install = true
313 whitelist_externals = sh
314 changedir = {toxinidir}/RO-SDN-juniper_contrail
315 commands =
316 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
317 python3 setup.py --command-packages=stdeb.command sdist_dsc
318 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
319
320
321 #######################################################################################
322 [testenv:dist_ro_sdn_odl_of]
323 deps = {[testenv]deps}
324 -r{toxinidir}/requirements-dist.txt
325 skip_install = true
326 whitelist_externals = sh
327 changedir = {toxinidir}/RO-SDN-odl_openflow
328 commands =
329 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
330 python3 setup.py --command-packages=stdeb.command sdist_dsc
331 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
332
333
334 #######################################################################################
335 [testenv:dist_ro_sdn_onos_of]
336 deps = {[testenv]deps}
337 -r{toxinidir}/requirements-dist.txt
338 skip_install = true
339 whitelist_externals = sh
340 changedir = {toxinidir}/RO-SDN-onos_openflow
341 commands =
342 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
343 python3 setup.py --command-packages=stdeb.command sdist_dsc
344 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
345
346
347 #######################################################################################
348 [testenv:dist_ro_sdn_onos_vpls]
349 deps = {[testenv]deps}
350 -r{toxinidir}/requirements-dist.txt
351 skip_install = true
352 whitelist_externals = sh
353 changedir = {toxinidir}/RO-SDN-onos_vpls
354 commands =
355 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
356 python3 setup.py --command-packages=stdeb.command sdist_dsc
357 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
358
359
360 #######################################################################################
361 [testenv:dist_ro_vim_aws]
362 deps = {[testenv]deps}
363 -r{toxinidir}/requirements-dist.txt
364 skip_install = true
365 whitelist_externals = sh
366 changedir = {toxinidir}/RO-VIM-aws
367 commands =
368 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
369 python3 setup.py --command-packages=stdeb.command sdist_dsc
370 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
371
372
373 #######################################################################################
374 [testenv:dist_ro_vim_azure]
375 deps = {[testenv]deps}
376 -r{toxinidir}/requirements-dist.txt
377 skip_install = true
378 whitelist_externals = sh
379 changedir = {toxinidir}/RO-VIM-azure
380 commands =
381 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
382 python3 setup.py --command-packages=stdeb.command sdist_dsc
383 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
384
385
386 #######################################################################################
387 [testenv:dist_ro_vim_fos]
388 deps = {[testenv]deps}
389 -r{toxinidir}/requirements-dist.txt
390 skip_install = true
391 whitelist_externals = sh
392 changedir = {toxinidir}/RO-VIM-fos
393 commands =
394 sh -c 'rm -rf deb_dist dist osm_rovim_fos.egg-info osm_rovim_fos*.tar.gz'
395 python3 setup.py --command-packages=stdeb.command sdist_dsc
396 sh -c 'cd deb_dist/osm-rovim-fos*/ && dpkg-buildpackage -rfakeroot -uc -us'
397
398
399 #######################################################################################
400 [testenv:dist_ro_vim_openstack]
401 deps = {[testenv]deps}
402 -r{toxinidir}/requirements-dist.txt
403 skip_install = true
404 whitelist_externals = sh
405 changedir = {toxinidir}/RO-VIM-openstack
406 commands =
407 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
408 python3 setup.py --command-packages=stdeb.command sdist_dsc
409 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
410
411
412 #######################################################################################
413 [testenv:dist_ro_vim_openvim]
414 deps = {[testenv]deps}
415 -r{toxinidir}/requirements-dist.txt
416 skip_install = true
417 whitelist_externals = sh
418 changedir = {toxinidir}/RO-VIM-openvim
419 commands =
420 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
421 python3 setup.py --command-packages=stdeb.command sdist_dsc
422 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
423
424
425 #######################################################################################
426 [testenv:dist_ro_vim_vmware]
427 deps = {[testenv]deps}
428 -r{toxinidir}/requirements-dist.txt
429 skip_install = true
430 whitelist_externals = sh
431 changedir = {toxinidir}/RO-VIM-vmware
432 commands =
433 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
434 python3 setup.py --command-packages=stdeb.command sdist_dsc
435 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
436
437
438 #######################################################################################
439 [testenv:dist_ro_vim_gcp]
440 deps = {[testenv]deps}
441 -r{toxinidir}/requirements-dist.txt
442 skip_install = true
443 whitelist_externals = sh
444 changedir = {toxinidir}/RO-VIM-gcp
445 commands =
446 sh -c 'rm -rf deb_dist dist osm_rovim_gcp.egg-info osm_rovim_gcp*.tar.gz'
447 python3 setup.py --command-packages=stdeb.command sdist_dsc
448 sh -c 'cd deb_dist/osm-rovim-gcp*/ && dpkg-buildpackage -rfakeroot -uc -us'
449
450
451 #######################################################################################
452 [flake8]
453 ignore =
454 W291,
455 W293,
456 W503,
457 W605,
458 E123,
459 E125,
460 E203,
461 E226,
462 E241
463 exclude =
464 .git,
465 __pycache__,
466 .tox,
467 max-line-length = 120
468 show-source = True
469 builtins = _