-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathpyproject.toml
154 lines (138 loc) · 3.95 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
154
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "vasim"
description = "Vertical Autoscaler Simulator Toolkit"
keywords = [
"data analysis",
"visualization",
]
classifiers = [
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Visualization",
"Topic :: System",
]
license = { "file" = "LICENSE" }
dynamic = [
"readme", # urls get dynamically mutated by the build process
"version",
]
maintainers = [
{ name = "VASim Maintainers", email = "[email protected]" },
]
requires-python = ">=3.9"
dependencies = [
# TODO: Remove version pinning or make it version dependent.
"cvxpy~=1.5.2",
"jsonargparse~=4.21.0",
"matplotlib~=3.7.1",
"numpy~=1.24.2",
"pandas~=1.5.3",
"plotnine~=0.12.2",
"python-dateutil~=2.8.2",
"requests~=2.32.0",
"sktime~=0.16.1"
]
[project.optional-dependencies]
"dev" = [
"autopep8",
"flake8",
"pylint",
"black",
"isort",
"pydocstringformatter",
"pytest",
"pytest-cov",
"pytest-xdist",
"coverage",
"pre-commit",
"streamlit"
]
[project.urls]
# TODO:
#Documentation = "https://microsoft.github.io/vasim"
Repository = "https://github.com/microsoft/vasim"
Issues = "https://github.com/microsoft/vasim/issues"
# Tell setuptools where to find the package.
[tool.setuptools]
package-dir = {"" = "src"}
[tool.pytest.ini_options]
minversion = "6.0"
# parallelize tests with xdist
# produce coverage report
addopts = "-n auto -s -v --cov=src/ --cov-fail-under=70 --cov-report=xml"
[tool.black]
line-length = 127
target-version = ["py39", "py310"]
include = '\.pyi?$'
[tool.isort]
profile = "black"
py_version = 310
src_paths = ["src", "tests"]
[tool.pydocstringformatter]
write = true
exit-code = true
max-line-length = 127
style = ["pep257", "numpydoc"]
[tool.pylint.main]
# FIXME: Remove these exceptions to add enforce more documentation and other checks.
disable = [
"missing-function-docstring",
"missing-module-docstring",
"missing-class-docstring",
"missing-raises-doc",
]
fail-on = [
# TODO:
#"missing-class-docstring",
#"missing-function-docstring",
"missing-module-docstring",
"unused-import",
]
# Specify a score threshold under which the program will exit with error.
fail-under = 9.8
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use, and will cap the count on Windows to
# avoid hangs.
jobs = 0
# Load some extra checkers.
load-plugins = [
"pylint.extensions.bad_builtin",
"pylint.extensions.code_style",
"pylint.extensions.docparams",
"pylint.extensions.docstyle",
"pylint.extensions.for_any_all",
"pylint.extensions.mccabe",
"pylint.extensions.no_self_use",
"pylint.extensions.private_import",
"pylint.extensions.redefined_loop_name",
"pylint.extensions.redefined_variable_type",
"pylint.extensions.set_membership",
"pylint.extensions.typing",
]
[tool.pylint.basic]
# override module naming expectations to allow PascalCase for file names instead of just snake case.
module-rgx = "(?:(?P<snake>[a-z0-9_]+)|(?P<pascal>(test_)?([A-Z][a-z0-9]*)+))$"
[tool.pylint.format]
max-line-length = 127
[tool.pylint."messages control"]
disable = [
"fixme",
"docstring-first-line-empty",
"no-else-return",
# Python 3.8 doesn't support these (remove when we no longer support 3.8):
"consider-using-assignment-expr",
"deprecated-typing-alias",
"consider-alternative-union-syntax",
]
[tool.pylint.string]
check-quote-consistency = true
check-str-concat-over-line-jumps = true