forked from metno/surfExp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
120 lines (105 loc) · 3.88 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
[tool.poetry]
name = "experiment"
version = "0.2.0"
description = "pysurfex-experiment"
authors = ["Trygve Aspelien <trygveasp@met.no>"]
readme = "README.rst"
[tool.poetry.scripts]
PySurfexExp = "experiment.cli:surfex_exp"
PySurfexExpConfig = "experiment.cli:surfex_exp_config"
PySurfexExpSetup = "experiment.setup.setup:surfex_exp_setup"
SubmitTask = "experiment.cli:run_submit_cmd_exp"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core >= 1.0.0"]
[tool.poetry.dependencies]
python = "^3.8"
dateutils = "^0.6.12"
fastjsonschema = "2.16.2"
f90nml = "^1.4.3"
humanize = "^3.14.0"
numexpr = "^2.8.4"
numpy = "^1.22.4"
pandas = "^1.4.0"
pyproj = "^3.3.0"
pyyaml = "^6.0"
tomlkit = "^0.11.6"
troika = {git = "https://git.ecmwf.int/scm/ecsdk/troika.git", tag="0.1.8"}
pysurfex = {git = "https://github.com/metno/pysurfex.git", develop=true, branch="master", extras=["points", "formats"]}
loguru = "^0.7.2"
[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.1.3"
sphinx-rtd-theme = "^1.2.0"
[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.poetry.extras]
docs = ["sphinx", "sphinx_rtd_theme"]
[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=./"
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"