|
| 1 | +[build-system] |
| 2 | +requires = ["flit"] |
| 3 | +build-backend = "flit.buildapi" |
| 4 | + |
| 5 | +[project] |
| 6 | +name = "deeptime" |
| 7 | +authors = [ |
| 8 | + {name = "Gilberto Medeiros", email = "medeiros.gilberto.br@gmail.com"} |
| 9 | +] |
| 10 | +description = "Deep Learning tools to work with Time Series" |
| 11 | +readme = "README.md" |
| 12 | +classifiers = [ |
| 13 | + "Development Status :: 3 - Alpha", |
| 14 | + "Intended Audience :: Developers", |
| 15 | + "License :: OSI Approved :: MIT License", |
| 16 | + "Programming Language :: Python :: 3 :: Only", |
| 17 | + "Programming Language :: Python :: 3.7", |
| 18 | + "Programming Language :: Python :: 3.8", |
| 19 | + "Programming Language :: Python :: 3.9", |
| 20 | + "Programming Language :: Python :: 3.10" |
| 21 | +] |
| 22 | +requires-python = ">=3.7" |
| 23 | +dynamic = ["version"] |
| 24 | + |
| 25 | +[project.optional-dependencies] |
| 26 | +spark = [ |
| 27 | + "pyspark>=3.0.0" |
| 28 | +] |
| 29 | +test = [ |
| 30 | + "bandit[toml]==1.7.4", |
| 31 | + "black==22.1.0", |
| 32 | + "check-manifest==0.48", |
| 33 | + "flake8-bugbear==22.1.11", |
| 34 | + "flake8-docstrings", |
| 35 | + "flake8-formatter_junit_xml", |
| 36 | + "flake8==4.0.1", |
| 37 | + "pre-commit==2.17.0", |
| 38 | + "pylint==2.12.2", |
| 39 | + "pylint_junit", |
| 40 | + "pytest-cov==3.0.0", |
| 41 | + "pytest-mock<3.7.1", |
| 42 | + "pytest-runner", |
| 43 | + "pytest==7.1.0", |
| 44 | + "pytest-github-actions-annotate-failures", |
| 45 | + "shellcheck-py==0.8.0.4" |
| 46 | +] |
| 47 | + |
| 48 | +[project.urls] |
| 49 | +Documentation = "https://github.com/jose-gilberto/deeptime/tree/main#readme" |
| 50 | +Source = "https://github.com/jose-gilberto/deeptime" |
| 51 | +Tracker = "https://github.com/jose-gilberto/deeptime/issues" |
| 52 | + |
| 53 | +[tool.flit.module] |
| 54 | +name = "deeptime" |
| 55 | + |
| 56 | +[tool.bandit] |
| 57 | +exclude_dirs = ["build", "dist", "tests", "scripts"] |
| 58 | +number = 4 |
| 59 | +recursive = true |
| 60 | +targets = "src" |
| 61 | + |
| 62 | +[tool.black] |
| 63 | +line-length = 120 |
| 64 | +fast = true |
| 65 | + |
| 66 | +[tool.coverage.run] |
| 67 | +branch = true |
| 68 | + |
| 69 | +[tool.coverage.report] |
| 70 | +fail_under = 80 |
| 71 | + |
| 72 | +[tool.pyright] |
| 73 | +include = ["src"] |
| 74 | +exclude = [ |
| 75 | + "**/__pycache__" |
| 76 | +] |
| 77 | +venv = "env37" |
| 78 | + |
| 79 | +reportMissingImports = true |
| 80 | +reportMissingTypeStubs = false |
| 81 | + |
| 82 | +pythonVersion = "3.9" |
| 83 | +pythonPlatform = "Windows" |
| 84 | + |
| 85 | +executionEnvironments = [ |
| 86 | + { root = "src" } |
| 87 | +] |
| 88 | + |
| 89 | +[tool.pytest.ini_options] |
| 90 | +addopts = "--cov-report xml:coverage.xml --cov src --cov-fail-under 0 --cov-append -m 'not integration'" |
| 91 | +pythonpath = [ |
| 92 | + "src" |
| 93 | +] |
| 94 | +testpaths = "tests" |
| 95 | +junit_family = "xunit2" |
| 96 | +markers = [ |
| 97 | + "integration: mark as integration test", |
| 98 | + "notebooks: mark as notebooks test", |
| 99 | + "gpu: mark as gpu test", |
| 100 | + "spark: marks tests which need spark", |
| 101 | + "slow: marks tests as slow", |
| 102 | + "unit: fast offline tests" |
| 103 | +] |
| 104 | + |
| 105 | +[tool.tox] |
| 106 | +legacy_tox_ini = """ |
| 107 | +[tox] |
| 108 | +envlist = py, integration, spark, all |
| 109 | +
|
| 110 | +[testenv] |
| 111 | +commands = |
| 112 | + pytest -m "not integration and not spark" {posargs} |
| 113 | +
|
| 114 | +[testenv:integration] |
| 115 | +commands = |
| 116 | + pytest -m "integration" {posargs} |
| 117 | +
|
| 118 | +[testenv:spark] |
| 119 | +extras = spark |
| 120 | +setenv = |
| 121 | + PYSPARK_DRIVER_PYTHON = {envpython} |
| 122 | + PYSPARK_PYTHON = {envpython} |
| 123 | +commands = |
| 124 | + pytest -m "spark" {posargs} |
| 125 | +
|
| 126 | +[testenv:all] |
| 127 | +extras = all |
| 128 | +setenv = |
| 129 | + PYSPARK_DRIVER_PYTHON = {envpython} |
| 130 | + PYSPARK_PYTHON = {envpython} |
| 131 | +commands = |
| 132 | + pytest {posargs} |
| 133 | +""" |
| 134 | + |
| 135 | +[tool.pylint] |
| 136 | +extension-pkg-whitelist = [ |
| 137 | + "numpy", |
| 138 | + "torch", |
| 139 | + "cv2", |
| 140 | + "pyodbc", |
| 141 | + "pydantic", |
| 142 | + "ciso8601", |
| 143 | + "netcdf4", |
| 144 | + "scipy" |
| 145 | +] |
| 146 | +ignore = "CVS" |
| 147 | +ignore-patterns = "test.*?py,conftest.py" |
| 148 | +init-hook = 'import sys; sys.setrecursionlimit(8 * sys.getrecursionlimit())' |
| 149 | +jobs = 0 |
| 150 | +limit-inference-results = 100 |
| 151 | +persistent = "yes" |
| 152 | +suggestion-mode = "yes" |
| 153 | +unsafe-load-any-extension = "no" |
| 154 | + |
| 155 | +[tool.pylint.'MESSAGES CONTROL'] |
| 156 | +enable = "c-extension-no-member" |
| 157 | + |
| 158 | +[tool.pylint.'REPORTS'] |
| 159 | +evaluation = "10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)" |
| 160 | +output-format = "text" |
| 161 | +reports = "no" |
| 162 | +score = "yes" |
| 163 | + |
| 164 | +[tool.pylint.'REFACTORING'] |
| 165 | +max-nested-blocks = 5 |
| 166 | +never-returning-functions = "sys.exit" |
| 167 | + |
| 168 | +[tool.pylint.'BASIC'] |
| 169 | +argument-naming-style = "snake_case" |
| 170 | +attr-naming-style = "snake_case" |
| 171 | +bad-names = [ |
| 172 | + "foo", |
| 173 | + "bar" |
| 174 | +] |
| 175 | +class-attribute-naming-style = "any" |
| 176 | +class-naming-style = "PascalCase" |
| 177 | +const-naming-style = "UPPER_CASE" |
| 178 | +docstring-min-length = -1 |
| 179 | +function-naming-style = "snake_case" |
| 180 | +god-names = [ |
| 181 | + "i", |
| 182 | + "j", |
| 183 | + "k", |
| 184 | + "ex", |
| 185 | + "Run", |
| 186 | + "_", |
| 187 | + "x" |
| 188 | +] |
| 189 | +include-naming-hint = "yes" |
| 190 | +inlinevar-naming-style = "any" |
| 191 | +method-naming-style = "snake_case" |
| 192 | +module-naming-style = "any" |
| 193 | +no-docstring-rgx = "^_" |
| 194 | +property-class = "abc.abstractproperty" |
| 195 | +variable-naming-style = "snake_case" |
| 196 | + |
| 197 | +[tool.pylint.'FORMAT'] |
| 198 | +ignore-long-lines = "^\\s*(# )?.*['\"]?<?https?://\\S+>?" |
| 199 | +indent-after-paren = 4 |
| 200 | +indent-string = ' ' |
| 201 | +max-line-length = 120 |
| 202 | +max-module-lines = 1000 |
| 203 | +no-space-check = [ |
| 204 | + "trailing-comma", |
| 205 | + "dict-separator" |
| 206 | +] |
| 207 | +single-line-class-stmt = "no" |
| 208 | +single-line-if-stmt = "no" |
| 209 | + |
| 210 | +[tool.pylint.'LOGGING'] |
| 211 | +logging-format-style = "old" |
| 212 | +logging-modules = "logging" |
| 213 | + |
| 214 | +[tool.pylint.'MISCELLANEOUS'] |
| 215 | +notes = [ |
| 216 | + "FIXME", |
| 217 | + "XXX", |
| 218 | + "TODO" |
| 219 | +] |
| 220 | + |
| 221 | +[tool.pylint.'SIMILARITIES'] |
| 222 | +ignore-comments = "yes" |
| 223 | +ignore-docstrings = "yes" |
| 224 | +ignore-imports = "yes" |
| 225 | +min-similarity-lines = 7 |
| 226 | + |
| 227 | +[tool.pylint.'SPELLING'] |
| 228 | +max-spelling-suggestions = 4 |
| 229 | +spelling-store-unknown-words = "no" |
| 230 | + |
| 231 | +[tool.pylint.'STRING'] |
| 232 | +check-str-concat-over-line-jumps = "no" |
| 233 | + |
| 234 | +[tool.pylint.'TYPECHECK'] |
| 235 | +contextmanager-decorators = "contextlib.contextmanager" |
| 236 | +generated-members = "numpy.*, np.*, pyspark.sql.functions, collect_list" |
| 237 | +ignore-mixin-members = "yes" |
| 238 | +ignore-none = "yes" |
| 239 | +ignore-on-opaque-inference = "yes" |
| 240 | +ignore-classes = "optparse.Values,thread._local, _thread._local,numpy,torch,swagger_client" |
| 241 | +ignore-modules = "numpy,torch,swagger_client,netCDF4,scipy" |
| 242 | +missing-member-hint = "yes" |
| 243 | +missing-member-hint-distance = 1 |
| 244 | +missing-member-max-choice = 1 |
| 245 | + |
| 246 | +[tool.pylint.'VARIABLES'] |
| 247 | +additional-builtins = "dbutils" |
| 248 | +allow-global-unused-variables = "yes" |
| 249 | +callbacks = [ |
| 250 | + "cb_", |
| 251 | + "_cb" |
| 252 | +] |
| 253 | +dummy-variable-rgx = "_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_" |
| 254 | +ignored-argument-names = "_.*|^ignored_|^unused_" |
| 255 | +init-import = "no" |
| 256 | +redefining-builtins-modules = "six.moves,past.builtins,future.builtins,builtins,io" |
| 257 | + |
| 258 | +[tool.pylint.'CLASSES'] |
| 259 | +defining-attr-methods= [ |
| 260 | + "__init__", |
| 261 | + "__new__", |
| 262 | + "setUp", |
| 263 | + "__post_init__" |
| 264 | +] |
| 265 | +exclude-protected= [ |
| 266 | + "_asdict", |
| 267 | + "_fields", |
| 268 | + "_replace", |
| 269 | + "_source", |
| 270 | + "_make" |
| 271 | +] |
| 272 | +valid-classmethod-first-arg="cls" |
| 273 | +valid-metaclass-classmethod-first-arg="cls" |
| 274 | + |
| 275 | +[tool.pylint.'DESIGN'] |
| 276 | +max-args=5 |
| 277 | +max-attributes=7 |
| 278 | +max-bool-expr=5 |
| 279 | +max-branches=12 |
| 280 | +max-locals=15 |
| 281 | +max-parents=7 |
| 282 | +max-public-methods=20 |
| 283 | +max-returns=6 |
| 284 | +max-statements=50 |
| 285 | +min-public-methods=2 |
| 286 | + |
| 287 | +[tool.pylint.'IMPORTS'] |
| 288 | +allow-wildcard-with-all="no" |
| 289 | +analyse-fallback-blocks="no" |
| 290 | +deprecated-modules="optparse,tkinter.tix" |
| 291 | + |
| 292 | +[tool.pylint.'EXCEPTIONS'] |
| 293 | +overgeneral-exceptions= [ |
| 294 | + "BaseException", |
| 295 | + "Exception" |
| 296 | +] |
0 commit comments