[build-system]
requires = [
  "setuptools >= 80.0",
  "wheel ~= 0.45",
  "pyTooling ~= 8.5"
]
build-backend = "setuptools.build_meta"

[tool.pylint.format]
indent-string="\t"
max-line-length = 120

[tool.pylint.basic]
argument-naming-style = "camelCase"
attr-naming-style = "camelCase"
class-attribute-naming-style = "camelCase"
class-const-naming-style = "UPPER_CASE"
class-naming-style = "PascalCase"
const-naming-style = "UPPER_CASE"
function-naming-style = "camelCase"
inlinevar-naming-style = "camelCase"
method-naming-style = "PascalCase"
module-naming-style = "any"
variable-naming-style = "camelCase"

[tool.mypy]
packages = ["myPackage", "myFramework.Extension"]
python_version = "3.13"
strict = true
pretty = true
show_error_context = true
show_error_codes = true
namespace_packages = true
follow_untyped_imports = true
html_report = "report/typing/html"
junit_xml = "report/typing/StaticTypingSummary.xml"
cobertura_xml_report = "report/typing"

[tool.pytest]
junit_xml = "report/unit/UnittestReportSummary.xml"

[tool.pyedaa-reports]
junit_xml = "report/unit/unittest.xml"

[tool.pytest.ini_options]
addopts = "--tb=native"
# Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
# derived from unittest.Testcase
python_files = "*"
python_functions = "test_*"
filterwarnings = [
	"error::DeprecationWarning",
	"error::PendingDeprecationWarning"
]
junit_logging = "all"

[tool.interrogate]
color = true
verbose = 1             # possible values: 0 (minimal output), 1 (-v), 2 (-vv)
fail-under = 59
generate-badge = "."
badge-format = "png"
ignore-setters = true

[tool.coverage.run]
branch = true
relative_files = true
omit = [
	"*site-packages*",
	"setup.py",
	"tests/benchmark/*",
	"tests/performance/*",
	"tests/platform/*",
	"tests/unit/*"
]

[tool.coverage.report]
skip_covered = false
skip_empty = true
exclude_lines = [
	"pragma: no cover",
	"raise NotImplementedError"
]
omit = [
	"tests/*"
]

[tool.coverage.xml]
output = "report/coverage/coverage.xml"

[tool.coverage.json]
output = "report/coverage/coverage.json"

[tool.coverage.html]
directory = "report/coverage/html"
title="Code Coverage of myPackage"
