forked from broadinstitute/seqr-loading-pipelines
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
104 lines (93 loc) · 2.69 KB
/
pyproject.toml
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
[project]
name = "seqr-loading-pipeline"
dynamic = ['version']
requires-python = ">=3.10"
[tool.setuptools]
include-package-data = false
[tool.setuptools.dynamic]
version = {attr = "v03_pipeline.__version__"}
[tool.setuptools.packages.find]
include = ["v03_pipeline*"]
exclude = ["v03_pipeline.bin", "v03_pipeline*test*"]
namespaces = false
[tool.black]
line-length = 88
skip-string-normalization = true
extend-exclude = '''
(
download_and_create_reference_datasets/v02
| gcloud_dataproc
| hail_scripts/computed_fields
| hail_scripts/elasticsearch
| hail_scripts/update_models
| hail_scripts/utils
| kubernetes
| luigi_pipeline/lib
| luigi_pipeline/seqr.*\.py$
| luigi_pipeline/tests/data
)
'''
[tool.isort]
include_trailing_comma = 'True'
known_external_package = ['hail_scripts']
line_length = 88
profile = 'black'
sections = ['FUTURE', 'STDLIB', 'THIRDPARTY', 'EXTERNAL_PACKAGE', 'FIRSTPARTY', 'LOCALFOLDER']
skip_glob = [
'download_and_create_reference_datasets/v02/*',
'gcloud_dataproc/*',
'hail_scripts/computed_fields/*',
'hail_scripts/elasticsearch/*',
'hail_scripts/update_models/*',
'hail_scripts/utils/*',
'kubernetes/*'
]
[tool.mypy]
packages = 'v03_pipeline'
python_version = "3.10"
ignore_missing_imports = true
strict = true
[tool.ruff]
extend-exclude = [
'download_and_create_reference_datasets/v02/*',
'gcloud_dataproc/*',
'hail_scripts/*',
'kubernetes/*',
'luigi_pipeline/lib/*',
'luigi_pipeline/seqr*.py',
'luigi_pipeline/tests/data/*',
'v03_pipeline/lib/reference_data/gencode/*',
]
ignore = [
# Individual Rules
"E501", # Black is less aggressive here when touching comments and strings, we're going to let those through.
"G004", # logging-f-string, these are fine for now
# Rule Groupings
"I", # isort is enabled so this is unnecessary (for now, maybe we want to disable isort)
"D", # pydocstyle is for docs... we have none
"FBT", # flake-boolean-trap... disallows boolean args to functions... fixing this code will require refactors.
"ANN", # flake8-annotations is for typed code
"DJ", # django specific
"T20", # forbids print, we print quite a bit
"PYI", # pyi is typing stub files
"PT", # pytest specific
"PTH", # pathlib is preferred, but we're not using it yet
"PD", # pandas specific
"NPY", # numpy specific
"TD", # todos
"FIX", # fixmes
]
line-length = 88
select = [
"ALL"
]
target-version = "py310"
[tool.ruff.flake8-quotes]
inline-quotes = "single"
[tool.ruff.per-file-ignores]
'*test*' = [
'ARG002', # allow unused method arguments
'SLF001', # allow private access
]
[tool.ruff.pylint]
max-args = 6