-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathpyproject.toml
153 lines (136 loc) · 5.13 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
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
[tool.poetry]
name = "pysurfex"
version = "0.0.4.1"
description = "Python API to SURFEX"
authors = ["Trygve Aspelien"]
license = "MIT"
readme = "README.rst"
repository = "/~https://github.com/metno/pysurfex"
documentation = "https://metno.github.io/pysurfex/"
[tool.poetry.scripts]
bufr2json = "pysurfex.cli:bufr2json"
create_forcing = "pysurfex.cli:create_forcing"
create_lsm_file = "pysurfex.cli:create_lsm_file_assim"
create_namelist = "pysurfex.cli:create_namelist"
cryoclim_pseudoobs = "pysurfex.cli:cryoclim_pseudoobs"
FirstGuess4gridpp = "pysurfex.cli:first_guess_for_oi"
dump_environ = "pysurfex.cli:dump_environ"
gridpp = "pysurfex.cli:gridpp"
hm2pysurfex = "pysurfex.cli:hm2pysurfex"
masterodb = "pysurfex.cli:masterodb"
merge_qc_data = "pysurfex.cli:cli_merge_qc_data"
modify_forcing = "pysurfex.cli:cli_modify_forcing"
obs2json = "pysurfex.cli:obs2json"
oi2soda = "pysurfex.cli:cli_oi2soda"
offline = "pysurfex.cli:offline"
perturbed_offline = "pysurfex.cli:perturbed_offline"
pgd = "pysurfex.cli:pgd"
plot_field = "pysurfex.cli:plot_field"
plot_points = "pysurfex.cli:plot_points"
prep = "pysurfex.cli:prep"
qc2obsmon = "pysurfex.cli:qc2obsmon"
sentinel_obs = "pysurfex.cli:sentinel_obs"
set_domain = "pysurfex.cli:cli_set_domain"
set_geo_from_obs_set = "pysurfex.cli:cli_set_geo_from_obs_set"
set_geo_from_stationlist = "pysurfex.cli:set_geo_from_stationlist"
shape2ign = "pysurfex.cli:cli_shape2ign"
soda = "pysurfex.cli:soda"
titan = "pysurfex.cli:titan"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core > 1.2.0"]
[tool.poetry.dependencies]
python = "^3.9"
dateutils = "^0.6.12"
f90nml = "^1.4.3"
humanize = ">=3.14.0"
numexpr = "^2.8.4"
numpy = "^1.20.1"
pandas = "^1.3.0"
pyproj = "^3.3.0"
pyyaml = "^6.0"
toml = "^0.10.2"
#[tool.poetry.group.formats.dependencies]
netcdf4 = "^1.5.7"
cfunits = "^3.3.5"
eccodes = "^1.5.1"
#[tool.poetry.group.points.dependencies]
requests = "^2.28.2"
gridpp = "0.7.0.dev7"
titanlib = "^0.3.3"
#[tool.poetry.group.plot.dependencies]
matplotlib = "^3.7.1"
[tool.poetry.group.dev.dependencies]
jupyterlab = "^3.6.1"
nb-clean = "^2.4.0"
poetryup = "^0.12.7"
pre-commit = "^3.0.4"
[tool.poetry.group.test.dependencies]
pytest = "^7.2.2"
pytest-cov = "^3.0.0"
pytest-mock = "^3.7.0"
pytest-profiling = "^1.7.0"
pytest-timeout = "^2.1.0"
pytest-xdist = "^3.2.0"
coveralls = "^3.3.1"
sphinx = "^6.2.1"
[tool.poetry.group.linting.dependencies]
black = "^22.1.0"
flake8 = "^4.0.1"
flakeheaven = "^0.11.1"
isort = "^5.10.1"
pyment = "0.3.3"
pylint = "^2.12.2"
# flake8 plugins
darglint = "^1.8.1"
flake8-bandit = "^3.0.0"
flake8-bugbear = "^22.1.11"
flake8-builtins = "^1.5.3"
flake8-comprehensions = "^3.8.0"
flake8-docstrings = "^1.6.0"
flake8-eradicate = "^1.2.0"
flake8-logging-format = "^0.9.0"
flake8-mutable = "^1.2.0"
flake8-pytest-style = "^1.6.0"
mccabe = "^0.6.1"
pep8-naming = "^0.12.1"
[tool.pytest.ini_options]
testpaths = ["tests/unit", "tests/smoke"]
addopts = "-v --cov-report=term-missing --cov-report=term:skip-covered --cov-report=xml:.coverage.xml --cov=./"
#addopts = "-v --cov-report=term-missing --cov-report=term:skip-covered -cov-report=html --cov=./"
log_cli_level = "INFO"
[tool.black]
line-length = 90
[tool.isort]
profile = "black"
line_length = 90
[tool.pylint.MASTER]
# See </~https://github.com/PyCQA/pylint/blob/master/pylint/extensions/docparams.py>
load-plugins = "pylint.extensions.docparams"
[tool.pylint.BASIC]
# We'll use pylint separate from flakheaven. Some pylint options don't seem to be
# respected when using it via flakeheaven (e.g., fail-under).
# For a description of the config opts used here, see:
# <https://docs.pylint.org/en/1.6.0/options.html>
# <https://docs.pylint.org/en/1.6.0/features.html>
# <https://docs.pylint.org/en/1.6.0/faq.html>
# Also, run "pylint --generate-rcfile" to see all applied pylint opts.
fail-under = "8.0"
good-names = ["i", "j", "n", "x", "y", "df", "db", "dt", "g0"]
# Default value for the rgx below: "[a-z_][a-z0-9_]{2,30}$"
attr-rgx = "[a-z_][a-z0-9_]{1,30}$"
[tool.pylint.messages_control]
# Disable C0116 (Missing function or method docstring). Leave it to flake8-docstrings
# Disable C0326 and C0330 to avoid clashing with black
# Disable C0301 (Line too long). Leave it for black to control.
# See <https://black.readthedocs.io/en/stable/compatible_configs.html#pylint>
# Disable E0402 due to false positives </~https://github.com/flycheck/flycheck/issues/1758>
disable = "C0116, C0301, C0326, C0330, E0402"
# Fix "no-name-in-module" error when linting pydantic-based code.
# See </~https://github.com/samuelcolvin/pydantic/issues/1961>
extension-pkg-whitelist = "pydantic"
[tool.pylint.format]
# Set max-line-length compatible with black
max-line-length = "90"
[tool.flakeheaven]
base = ".flakeheaven.toml"