1[build-system]
  2requires = ["setuptools"]
  3build-backend = "setuptools.build_meta"
  4
  5[project]
  6name = "eumetsat.chartepssg"
  7authors = [
  8    {name = "EUMETSAT", email = "sgs_sae@eumetsat.int"},
  9]
 10description = "European Polar System Second Generation timeseries analysis tool"
 11readme = "README.rst"
 12requires-python = ">=3.6"
 13keywords = ["chart", "satellite", "telemetry", "meteosat", "epssg"]
 14# license = {file = "LICENSE.rst"}
 15classifiers = [
 16    "Programming Language :: Python :: 3",
 17]
 18dependencies = [
 19    "eumetsat.chart",
 20]
 21dynamic = ["version"]
 22
 23[project.urls]
 24homepage = "https://confluence.eumetsat.int/display/SAE/CHART+EPS-SG"
 25repository = "https://gitlab.eumetsat.int/chart/chartepssg"
 26
 27[tool.setuptools]
 28# this package will read some included files in runtime, avoid installing it as .zip
 29# zip-safe = false
 30packages = ["chartepssg"]
 31
 32[tool.pydocstyle]
 33# D105: Missing docstring in magic method
 34# D107: Missing docstring in __init__
 35# D202 : No blank lines allowed after function docstring
 36# D213: Multi-line docstring summary should start at the second line
 37# D203: 1 blank line required before class docstring (found 0)
 38# D206: Spaces to indent docstrings
 39# D407: Mising dashed underline after section ('Yields') <- pydocstyle doesn't
 40#  yet fully support Google style docstrings
 41# D406: Section name should end with a newline <- again, incomplete Google style
 42ignore = ["D105","D107","D213","D203","D206","D407","D406"]
 43
 44[tool.pytest]
 45filterwarnings = ["ignore::DeprecationWarning"]
 46testpaths = ["tests"]
 47norecursedirs = ["legacy"]
 48doctest_optionflags = ["NORMALIZE_WHITESPACE", "IGNORE_EXCEPTION_DETAIL", "NUMBER"]
 49junit_family = ["xunit2"]
 50# These markers are only needed for quickly running server, web or database tests
 51# They will automatically disable themselves if the server or database information
 52# is not given on the command line
 53# markers =\
 54    # webserver: Mark a test as testing a webserver by sending requests to it
 55    # webbrowser: Tests that simulate a browser
 56    # web: Combine webserver and webbrowser
 57#    database: Tests against the content of a database
 58addopts = "--project=chartmtg"
 59
 60
 61# [tool:mypy]
 62# mypy_suppress_stub_warnings = true
 63
 64# [tool:coverage]
 65# omit=/usr
 66# source = chart
 67# data_file = "/.coverage"
 68# parallel = true
 69
 70[tool.pylint.MASTER]
 71# see old setup.cfg and .pylintrc files from repo for older and more detailed versions
 72# Propogate changes back to chart/pyproject.toml to apply to all CHART projects
 73
 74# Hide VCS files
 75ignore = '.git'
 76# Maximum lines in a module
 77max-module-lines = 2000
 78# Always allow these variable names
 79good-names=["i","j","k","ex","x","y","e"]
 80
 81[tool.pylint."MESSAGES CONTROL"]
 82disable = ["consider-using-f-string"]
 83
 84[tool.pylint.REPORTS]
 85reports = 'no'
 86score = 'no'
 87
 88[tool.pylint.LOGGING]
 89logging-modules = 'logging'
 90
 91[tool.pylint.SPELLING]
 92spelling-ignore-words = ''
 93max-spelling-suggestions = 4
 94spelling-private-dict-file = ''
 95
 96[tool.pylint.format]
 97max-line-length = 100
 98indent-string = '\t'
 99
100[tool.pylint.similarities]
101ignore-comments = 'yes'
102ignore-docstrings = 'yes'
103ignore-imports = 'no'
104min-similarity-lines = 4
105
106[tool.pylint.BASIC]
107argument-naming-style = 'snake_case'
108attr-naming-style = 'snake_case'
109class-attribute-naming-style = 'any'
110class-naming-style = 'PascalCase'
111const-naming-style = 'UPPER_CASE'
112function-naming-style = 'snake_case'
113method-naming-style = 'snake_case'
114module-naming-style = 'snake_case'
115variable-naming-style = 'snake_case'
116
117[tool.pycodestyle]
118exclude = ["rdr.py", "dynatree_server.py"]
119max-line-length = 100
120# W191: indentation contains tabs
121# E101: indentation contains mixed spaces and tabs
122# E501: line too long (fixed at 80 chars)
123# E225: missing whitespace around operator (too strict)
124# E203: whitespace before ':' (problem: raw_ints[cur.rowcount, :])
125# E116: unexpected indentation (comment)
126# E121: indentation is not a multiple of four
127# E122: missing indentation or outdented
128# E123: closing bracket does not match indentation of opening bracket's line
129# E124: closing bracket does not match visual indentation
130# E125: continuation line does not distinguish itself from next logical line
131# E126: continuation line over-indented for hanging indent
132# E127: over-indented for visual indent
133# E128: continuation line under-indented for visual indent
134# E117: over-indented (this looks like a bug in tab detection in pycodestyle 2.5)
135# W504: line break after binary operator
136ignore = "W191,E101,E121,E122,E123,E124,E125,E126,E127,E128,E116,E117,W504"
137# repeat=True