forked from DIRACGrid/DIRAC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.cfg
310 lines (302 loc) · 19.9 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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
###############################################################################
# Setuptools
###############################################################################
[metadata]
name = DIRAC
description = DIRAC is an interware, meaning a software framework for distributed computing.
long_description = file: README.rst
url = https://github.com/DIRACGrid/DIRAC/
license = GPL-3.0-only
license_files = LICENSE
classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Science/Research
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Topic :: Scientific/Engineering
Topic :: System :: Distributed Computing
[options]
python_requires = >=3.8
package_dir=
=src
packages = find:
# TODO: This should be treated as a legacy workaround and eventually removed
scripts =
src/DIRAC/Core/scripts/genAllCAs.sh
src/DIRAC/Core/scripts/dirac-cert-convert.sh
src/DIRAC/Core/scripts/install_site.sh
src/DIRAC/Core/scripts/genRevokedCerts.sh
install_requires =
boto3
botocore
cachetools
certifi
diraccfg
fts3
future
gfal2-python
M2Crypto >=0.36
pexpect
prompt-toolkit >=3
psutil
pyasn1
pyasn1-modules
pyparsing
python-dateutil
pytz
requests
# Doesn't support Python 3.9
# rucio-clients >=1.25.6
setuptools
six
sqlalchemy
subprocess32
zip_safe = False
include_package_data = True
[options.package_data]
* = ConfigTemplate.cfg, *.sql
[options.packages.find]
where=src
[options.extras_require]
server =
# arc6 doesn't provide a proper Python package with metadata
# (it just installs into site-packages)
# arc
CMRESHandler
elasticsearch <7.14
elasticsearch_dsl
GitPython
ldap3
apache-libcloud
matplotlib
mysqlclient
numpy
pillow
python-json-logger
pyyaml
stomp.py
suds
tornado ~=5.1.1
tornado-m2crypto
importlib_resources
testing =
flaky
hypothesis
mock
parameterized
pytest
pytest-cov
pycodestyle
[options.entry_points]
dirac =
metadata = DIRAC:extension_metadata
# For details on adding additional scripts to vanilla DIRAC or external extensions see
# https://dirac.readthedocs.io/en/integration/DeveloperGuide/AddingNewComponents/DevelopingCommands/index.html
console_scripts =
# AccountingSystem
dirac-accounting-decode-fileid = DIRAC.AccountingSystem.scripts.dirac_accounting_decode_fileid:main
dirac-admin-accounting-cli = DIRAC.AccountingSystem.scripts.dirac_admin_accounting_cli:main [admin]
# ConfigurationSystem
dirac-admin-add-resources = DIRAC.ConfigurationSystem.scripts.dirac_admin_add_resources:main [admin]
dirac-admin-add-shifter = DIRAC.ConfigurationSystem.scripts.dirac_admin_add_shifter:main [admin]
dirac-admin-add-site = DIRAC.ConfigurationSystem.scripts.dirac_admin_add_site:main [admin]
dirac-admin-check-config-options = DIRAC.ConfigurationSystem.scripts.dirac_admin_check_config_options:main [admin]
dirac-admin-sort-cs-sites = DIRAC.ConfigurationSystem.scripts.dirac_admin_sort_cs_sites:main [admin]
dirac-admin-voms-sync = DIRAC.ConfigurationSystem.scripts.dirac_admin_voms_sync:main [admin]
dirac-configuration-cli = DIRAC.ConfigurationSystem.scripts.dirac_configuration_cli:main [admin]
dirac-configuration-dump-local-cache = DIRAC.ConfigurationSystem.scripts.dirac_configuration_dump_local_cache:main [admin]
dirac-configuration-shell = DIRAC.ConfigurationSystem.scripts.dirac_configuration_shell:main [admin]
# Core
dirac-agent = DIRAC.Core.scripts.dirac_agent:main [server,pilot]
dirac-configure = DIRAC.Core.scripts.dirac_configure:main
dirac-executor = DIRAC.Core.scripts.dirac_executor:main [server]
# dirac-externals-requirements = DIRAC.Core.scripts.dirac_externals_requirements:main
dirac-info = DIRAC.Core.scripts.dirac_info:main
dirac-install-db = DIRAC.Core.scripts.dirac_install_db:main [server]
dirac-install-web-portal = DIRAC.Core.scripts.dirac_install_web_portal:main [server]
dirac-platform = DIRAC.Core.scripts.dirac_platform:main
dirac-service = DIRAC.Core.scripts.dirac_service:main [server]
dirac-setup-site = DIRAC.Core.scripts.dirac_setup_site:main [server]
dirac-version = DIRAC.Core.scripts.dirac_version:main
# Core.Tornado
tornado-start-CS = DIRAC.Core.Tornado.scripts.tornado_start_CS:main [server]
tornado-start-all = DIRAC.Core.Tornado.scripts.tornado_start_all:main [server]
# DataManagementSystem
dirac-admin-allow-se = DIRAC.DataManagementSystem.scripts.dirac_admin_allow_se:main [admin]
dirac-admin-ban-se = DIRAC.DataManagementSystem.scripts.dirac_admin_ban_se:main [admin]
dirac-admin-user-quota = DIRAC.DataManagementSystem.scripts.dirac_admin_user_quota:main
dirac-dms-add-file = DIRAC.DataManagementSystem.scripts.dirac_dms_add_file:main
dirac-dms-catalog-metadata = DIRAC.DataManagementSystem.scripts.dirac_dms_catalog_metadata:main
dirac-dms-change-replica-status = DIRAC.DataManagementSystem.scripts.dirac_dms_change_replica_status:main [admin]
dirac-dms-clean-directory = DIRAC.DataManagementSystem.scripts.dirac_dms_clean_directory:main [admin]
dirac-dms-create-archive-request = DIRAC.DataManagementSystem.scripts.dirac_dms_create_archive_request:main
dirac-dms-create-moving-request = DIRAC.DataManagementSystem.scripts.dirac_dms_create_moving_request:main
dirac-dms-create-removal-request = DIRAC.DataManagementSystem.scripts.dirac_dms_create_removal_request:main
dirac-dms-data-size = DIRAC.DataManagementSystem.scripts.dirac_dms_data_size:main
dirac-dms-directory-sync = DIRAC.DataManagementSystem.scripts.dirac_dms_directory_sync:main
dirac-dms-filecatalog-cli = DIRAC.DataManagementSystem.scripts.dirac_dms_filecatalog_cli:main
dirac-dms-find-lfns = DIRAC.DataManagementSystem.scripts.dirac_dms_find_lfns:main
dirac-dms-move-replica-request = DIRAC.DataManagementSystem.scripts.dirac_dms_move_replica_request:main
dirac-dms-protocol-matrix = DIRAC.DataManagementSystem.scripts.dirac_dms_protocol_matrix:main [admin]
dirac-dms-put-and-register-request = DIRAC.DataManagementSystem.scripts.dirac_dms_put_and_register_request:main
dirac-dms-remove-catalog-files = DIRAC.DataManagementSystem.scripts.dirac_dms_remove_catalog_files:main
dirac-dms-remove-catalog-replicas = DIRAC.DataManagementSystem.scripts.dirac_dms_remove_catalog_replicas:main
dirac-dms-remove-files = DIRAC.DataManagementSystem.scripts.dirac_dms_remove_files:main
dirac-dms-remove-replicas = DIRAC.DataManagementSystem.scripts.dirac_dms_remove_replicas:main
dirac-dms-replica-metadata = DIRAC.DataManagementSystem.scripts.dirac_dms_replica_metadata:main
dirac-dms-replicate-and-register-request = DIRAC.DataManagementSystem.scripts.dirac_dms_replicate_and_register_request:main
dirac-dms-resolve-guid = DIRAC.DataManagementSystem.scripts.dirac_dms_resolve_guid:main
dirac-dms-set-replica-status = DIRAC.DataManagementSystem.scripts.dirac_dms_set_replica_status:main
dirac-dms-show-se-status = DIRAC.DataManagementSystem.scripts.dirac_dms_show_se_status:main
dirac-dms-user-lfns = DIRAC.DataManagementSystem.scripts.dirac_dms_user_lfns:main
dirac-dms-user-quota = DIRAC.DataManagementSystem.scripts.dirac_dms_user_quota:main
# FrameworkSystem
dirac-admin-get-CAs = DIRAC.FrameworkSystem.scripts.dirac_admin_get_CAs:main [server]
dirac-admin-get-proxy = DIRAC.FrameworkSystem.scripts.dirac_admin_get_proxy:main [admin]
dirac-admin-proxy-upload = DIRAC.FrameworkSystem.scripts.dirac_admin_proxy_upload:main [admin]
dirac-admin-sysadmin-cli = DIRAC.FrameworkSystem.scripts.dirac_admin_sysadmin_cli:main [admin]
dirac-admin-update-instance = DIRAC.FrameworkSystem.scripts.dirac_admin_update_instance:main [admin]
dirac-admin-update-pilot = DIRAC.FrameworkSystem.scripts.dirac_admin_update_pilot:main [admin]
dirac-admin-users-with-proxy = DIRAC.FrameworkSystem.scripts.dirac_admin_users_with_proxy:main [admin]
dirac-install-component = DIRAC.FrameworkSystem.scripts.dirac_install_component:main [server]
dirac-install-tornado-service = DIRAC.FrameworkSystem.scripts.dirac_install_tornado_service:main [server]
dirac-monitoring-get-components-status = DIRAC.FrameworkSystem.scripts.dirac_monitoring_get_components_status:main [admin]
dirac-myproxy-upload = DIRAC.FrameworkSystem.scripts.dirac_myproxy_upload:main
dirac-populate-component-db = DIRAC.FrameworkSystem.scripts.dirac_populate_component_db:main [admin]
dirac-proxy-destroy = DIRAC.FrameworkSystem.scripts.dirac_proxy_destroy:main
dirac-proxy-get-uploaded-info = DIRAC.FrameworkSystem.scripts.dirac_proxy_get_uploaded_info:main
dirac-proxy-info = DIRAC.FrameworkSystem.scripts.dirac_proxy_info:main
dirac-proxy-init = DIRAC.FrameworkSystem.scripts.dirac_proxy_init:main
dirac-restart-component = DIRAC.FrameworkSystem.scripts.dirac_restart_component:main [server]
dirac-start-component = DIRAC.FrameworkSystem.scripts.dirac_start_component:main [server]
dirac-status-component = DIRAC.FrameworkSystem.scripts.dirac_status_component:main [server]
dirac-stop-component = DIRAC.FrameworkSystem.scripts.dirac_stop_component:main [server]
dirac-sys-sendmail = DIRAC.FrameworkSystem.scripts.dirac_sys_sendmail:main [admin]
dirac-uninstall-component = DIRAC.FrameworkSystem.scripts.dirac_uninstall_component:main [server]
# Interfaces
dirac-admin-add-group = DIRAC.Interfaces.scripts.dirac_admin_add_group:main [admin]
dirac-admin-add-host = DIRAC.Interfaces.scripts.dirac_admin_add_host:main [admin]
dirac-admin-add-user = DIRAC.Interfaces.scripts.dirac_admin_add_user:main [admin]
dirac-admin-allow-site = DIRAC.Interfaces.scripts.dirac_admin_allow_site:main [admin]
dirac-admin-ban-site = DIRAC.Interfaces.scripts.dirac_admin_ban_site:main [admin]
dirac-admin-ce-info = DIRAC.Interfaces.scripts.dirac_admin_ce_info:main [admin]
dirac-admin-delete-user = DIRAC.Interfaces.scripts.dirac_admin_delete_user:main [admin]
dirac-admin-get-banned-sites = DIRAC.Interfaces.scripts.dirac_admin_get_banned_sites:main
dirac-admin-get-job-pilot-output = DIRAC.Interfaces.scripts.dirac_admin_get_job_pilot_output:main
dirac-admin-get-job-pilots = DIRAC.Interfaces.scripts.dirac_admin_get_job_pilots:main
dirac-admin-get-pilot-info = DIRAC.Interfaces.scripts.dirac_admin_get_pilot_info:main
dirac-admin-get-pilot-logging-info = DIRAC.Interfaces.scripts.dirac_admin_get_pilot_logging_info:main
dirac-admin-get-pilot-output = DIRAC.Interfaces.scripts.dirac_admin_get_pilot_output:main
dirac-admin-get-site-mask = DIRAC.Interfaces.scripts.dirac_admin_get_site_mask:main [admin]
dirac-admin-list-hosts = DIRAC.Interfaces.scripts.dirac_admin_list_hosts:main [admin]
dirac-admin-list-users = DIRAC.Interfaces.scripts.dirac_admin_list_users:main [admin]
dirac-admin-modify-user = DIRAC.Interfaces.scripts.dirac_admin_modify_user:main [admin]
dirac-admin-pilot-summary = DIRAC.Interfaces.scripts.dirac_admin_pilot_summary:main [admin]
dirac-admin-reset-job = DIRAC.Interfaces.scripts.dirac_admin_reset_job:main [admin]
dirac-admin-service-ports = DIRAC.Interfaces.scripts.dirac_admin_service_ports:main [admin]
dirac-admin-set-site-protocols = DIRAC.Interfaces.scripts.dirac_admin_set_site_protocols:main [admin]
dirac-admin-site-info = DIRAC.Interfaces.scripts.dirac_admin_site_info:main
dirac-admin-site-mask-logging = DIRAC.Interfaces.scripts.dirac_admin_site_mask_logging:main [admin]
dirac-admin-sync-users-from-file = DIRAC.Interfaces.scripts.dirac_admin_sync_users_from_file:main [admin]
dirac-dms-get-file = DIRAC.Interfaces.scripts.dirac_dms_get_file:main
dirac-dms-lfn-accessURL = DIRAC.Interfaces.scripts.dirac_dms_lfn_accessURL:main
dirac-dms-lfn-metadata = DIRAC.Interfaces.scripts.dirac_dms_lfn_metadata:main
dirac-dms-lfn-replicas = DIRAC.Interfaces.scripts.dirac_dms_lfn_replicas:main
dirac-dms-pfn-accessURL = DIRAC.Interfaces.scripts.dirac_dms_pfn_accessURL:main
dirac-dms-pfn-metadata = DIRAC.Interfaces.scripts.dirac_dms_pfn_metadata:main
dirac-dms-replicate-lfn = DIRAC.Interfaces.scripts.dirac_dms_replicate_lfn:main
dirac-framework-ping-service = DIRAC.Interfaces.scripts.dirac_framework_ping_service:main [admin]
dirac-framework-self-ping = DIRAC.Interfaces.scripts.dirac_framework_self_ping:main [server]
dirac-repo-monitor = DIRAC.Interfaces.scripts.dirac_repo_monitor:main [admin]
dirac-utils-file-adler = DIRAC.Interfaces.scripts.dirac_utils_file_adler:main
dirac-utils-file-md5 = DIRAC.Interfaces.scripts.dirac_utils_file_md5:main
dirac-wms-get-normalized-queue-length = DIRAC.Interfaces.scripts.dirac_wms_get_normalized_queue_length:main [admin]
dirac-wms-get-queue-normalization = DIRAC.Interfaces.scripts.dirac_wms_get_queue_normalization:main [pilot]
dirac-wms-job-attributes = DIRAC.Interfaces.scripts.dirac_wms_job_attributes:main
dirac-wms-job-delete = DIRAC.Interfaces.scripts.dirac_wms_job_delete:main
dirac-wms-job-get-input = DIRAC.Interfaces.scripts.dirac_wms_job_get_input:main
dirac-wms-job-get-jdl = DIRAC.Interfaces.scripts.dirac_wms_job_get_jdl:main
dirac-wms-job-get-output = DIRAC.Interfaces.scripts.dirac_wms_job_get_output:main
dirac-wms-job-get-output-data = DIRAC.Interfaces.scripts.dirac_wms_job_get_output_data:main
dirac-wms-job-kill = DIRAC.Interfaces.scripts.dirac_wms_job_kill:main
dirac-wms-job-logging-info = DIRAC.Interfaces.scripts.dirac_wms_job_logging_info:main
dirac-wms-job-parameters = DIRAC.Interfaces.scripts.dirac_wms_job_parameters:main
dirac-wms-job-peek = DIRAC.Interfaces.scripts.dirac_wms_job_peek:main
dirac-wms-job-reschedule = DIRAC.Interfaces.scripts.dirac_wms_job_reschedule:main
dirac-wms-job-status = DIRAC.Interfaces.scripts.dirac_wms_job_status:main
dirac-wms-job-submit = DIRAC.Interfaces.scripts.dirac_wms_job_submit:main
dirac-wms-jobs-select-output-search = DIRAC.Interfaces.scripts.dirac_wms_jobs_select_output_search:main
dirac-wms-select-jobs = DIRAC.Interfaces.scripts.dirac_wms_select_jobs:main
# ProductionSystem
dirac-prod-add-trans = DIRAC.ProductionSystem.scripts.dirac_prod_add_trans:main [admin]
dirac-prod-clean = DIRAC.ProductionSystem.scripts.dirac_prod_clean:main [admin]
dirac-prod-delete = DIRAC.ProductionSystem.scripts.dirac_prod_delete:main [admin]
dirac-prod-get = DIRAC.ProductionSystem.scripts.dirac_prod_get:main [admin]
dirac-prod-get-all = DIRAC.ProductionSystem.scripts.dirac_prod_get_all:main [admin]
dirac-prod-get-description = DIRAC.ProductionSystem.scripts.dirac_prod_get_description:main [admin]
dirac-prod-get-trans = DIRAC.ProductionSystem.scripts.dirac_prod_get_trans:main [admin]
dirac-prod-start = DIRAC.ProductionSystem.scripts.dirac_prod_start:main [admin]
dirac-prod-stop = DIRAC.ProductionSystem.scripts.dirac_prod_stop:main [admin]
# Resources
dirac-resource-get-parameters = DIRAC.Resources.scripts.dirac_resource_get_parameters:main [admin, pilot]
dirac-resource-info = DIRAC.Resources.scripts.dirac_resource_info:main [admin]
# RequestManagementSystem
dirac-rms-list-req-cache = DIRAC.RequestManagementSystem.scripts.dirac_rms_list_req_cache:main
dirac-rms-reqdb-summary = DIRAC.RequestManagementSystem.scripts.dirac_rms_reqdb_summary:main [admin]
dirac-rms-request = DIRAC.RequestManagementSystem.scripts.dirac_rms_request:main
# ResourceStatusSystem
dirac-rss-list-status = DIRAC.ResourceStatusSystem.scripts.dirac_rss_list_status:main
dirac-rss-query-db = DIRAC.ResourceStatusSystem.scripts.dirac_rss_query_db:main [admin]
dirac-rss-query-dtcache = DIRAC.ResourceStatusSystem.scripts.dirac_rss_query_dtcache:main [admin]
dirac-rss-set-status = DIRAC.ResourceStatusSystem.scripts.dirac_rss_set_status:main [admin]
dirac-rss-set-token = DIRAC.ResourceStatusSystem.scripts.dirac_rss_set_token:main [admin]
dirac-rss-sync = DIRAC.ResourceStatusSystem.scripts.dirac_rss_sync:main [admin]
# StorageManagementSystem
dirac-stager-monitor-file = DIRAC.StorageManagementSystem.scripts.dirac_stager_monitor_file:main
dirac-stager-monitor-jobs = DIRAC.StorageManagementSystem.scripts.dirac_stager_monitor_jobs:main
dirac-stager-monitor-request = DIRAC.StorageManagementSystem.scripts.dirac_stager_monitor_request:main
dirac-stager-monitor-requests = DIRAC.StorageManagementSystem.scripts.dirac_stager_monitor_requests:main
dirac-stager-show-stats = DIRAC.StorageManagementSystem.scripts.dirac_stager_show_stats:main
dirac-stager-stage-files = DIRAC.StorageManagementSystem.scripts.dirac_stager_stage_files:main
# TransformationSystem
dirac-production-runjoblocal = DIRAC.TransformationSystem.scripts.dirac_production_runjoblocal:main
dirac-transformation-add-files = DIRAC.TransformationSystem.scripts.dirac_transformation_add_files:main [admin]
dirac-transformation-archive = DIRAC.TransformationSystem.scripts.dirac_transformation_archive:main [admin]
dirac-transformation-clean = DIRAC.TransformationSystem.scripts.dirac_transformation_clean:main [admin]
dirac-transformation-cli = DIRAC.TransformationSystem.scripts.dirac_transformation_cli:main [admin]
dirac-transformation-get-files = DIRAC.TransformationSystem.scripts.dirac_transformation_get_files:main [admin]
dirac-transformation-recover-data = DIRAC.TransformationSystem.scripts.dirac_transformation_recover_data:main [admin]
dirac-transformation-remove-output = DIRAC.TransformationSystem.scripts.dirac_transformation_remove_output:main [admin]
dirac-transformation-replication = DIRAC.TransformationSystem.scripts.dirac_transformation_replication:main [admin]
dirac-transformation-verify-outputdata = DIRAC.TransformationSystem.scripts.dirac_transformation_verify_outputdata:main [admin]
# WorkloadManagementSystem
dirac-admin-kill-pilot = DIRAC.WorkloadManagementSystem.scripts.dirac_admin_kill_pilot:main [admin]
dirac-admin-pilot-logging-info = DIRAC.WorkloadManagementSystem.scripts.dirac_admin_pilot_logging_info:main [admin]
dirac-admin-show-task-queues = DIRAC.WorkloadManagementSystem.scripts.dirac_admin_show_task_queues:main [admin]
dirac-admin-sync-pilot = DIRAC.WorkloadManagementSystem.scripts.dirac_admin_sync_pilot:main [admin]
dirac-jobexec = DIRAC.WorkloadManagementSystem.scripts.dirac_jobexec:main [pilot]
dirac-vm-cli = DIRAC.WorkloadManagementSystem.scripts.dirac_vm_cli:main [admin]
dirac-vm-endpoint-status = DIRAC.WorkloadManagementSystem.scripts.dirac_vm_endpoint_status:main [admin]
dirac-vm-get-pilot-output = DIRAC.WorkloadManagementSystem.scripts.dirac_vm_get_pilot_output:main [admin]
dirac-vm-instance-stop = DIRAC.WorkloadManagementSystem.scripts.dirac_vm_instance_stop:main [admin]
dirac-wms-cpu-normalization = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_cpu_normalization:main [pilot]
dirac-wms-get-queue-cpu-time = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_get_queue_cpu_time:main [pilot]
dirac-wms-get-wn = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_get_wn:main [admin]
dirac-wms-get-wn-parameters = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_get_wn_parameters:main [pilot]
dirac-wms-match = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_match:main [admin]
dirac-wms-pilot-job-info = DIRAC.WorkloadManagementSystem.scripts.dirac_wms_pilot_job_info:main
###############################################################################
# Linting
###############################################################################
[pycodestyle]
# Pep8 codes:
# E203 - Whitespace before ':' (spaces should be present for list slices)
# E211 - Whitespace before '(' (black incorrectly formats exec when in Python 2 mode)
# E266 - Too many leading '#' for block comment
# E402 - module level import not at top of file (for scripts)
# W503 - line break before binary operator (stupid, complains after or before...)
ignore = E203, E211, E266, E402, W503
# TODO: This should be reduced back to 120 at some point
max_line_length=130