[project]
name = "thousandeyes-sdk-endpoint-labels"
dynamic = ["version"]
readme = "README.md"
authors = [
    { name = "ThousandEyes API Team", email = "api-team@thousandeyes.com" }
]
description = "ThousandEyes SDK Endpoint Agent Labels API"
license = { file = "LICENSE" }
requires-python = ">= 3.8"
dependencies = [
    "urllib3 >= 2.0.0",
    "python-dateutil >=2.8.2",
    "pydantic >=2.1.0",
    "typing-extensions >=4.7.1",
    "thousandeyes-sdk-core",
]

[tool.setuptools.dynamic]
version = {file = ".version"}

[project.optional-dependencies]
test = [
    "pytest~=7.1.3",
    "pytest-cov>=2.8.1",
    "pytest-randomly>=3.12.0",
    "mypy>=1.4.1",
    "types-python-dateutil>=2.8.19",
]
dev = [
    "flake8>=4.0.0",
    "mypy>=1.4.1",
    "types-python-dateutil>=2.8.19",
]

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
include-package-data = true

[tool.pylint.'MESSAGES CONTROL']
extension-pkg-whitelist = "pydantic"

[tool.mypy]
files = [
  "src",
  #"test",  # auto-generated tests
  "tests", # hand-written tests
]
# TODO: enable "strict" once all these individual checks are passing
# strict = true

# List from: https://mypy.readthedocs.io/en/stable/existing_code.html#introduce-stricter-options
warn_unused_configs = true
warn_redundant_casts = true
warn_unused_ignores = true

## Getting these passing should be easy
strict_equality = true
strict_concatenate = true

## Strongly recommend enabling this one as soon as you can
check_untyped_defs = true

## These shouldn't be too much additional work, but may be tricky to
## get passing if you use a lot of untyped libraries
disallow_subclassing_any = true
disallow_untyped_decorators = true
disallow_any_generics = true

### These next few are various gradations of forcing use of type annotations
#disallow_untyped_calls = true
#disallow_incomplete_defs = true
#disallow_untyped_defs = true
#
### This one isn't too hard to get passing, but return on investment is lower
#no_implicit_reexport = true
#
### This one can be tricky to get passing if you use a lot of untyped libraries
#warn_return_any = true
