pyproject.toml
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.black]
target-version = ["py39"]
[tool.coverage.report]
exclude_lines = ["raise NotImplementedError", "TYPE_CHECKING"]
fail_under = 100
show_missing = true
[tool.coverage.run]
source = ["pytile"]
[tool.isort]
known_first_party = "pytile,examples,tests"
multi_line_output = 3
profile = "black"
[tool.mypy]
check_untyped_defs = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true
follow_imports = "silent"
ignore_missing_imports = true
no_implicit_optional = true
platform = "linux"
python_version = "3.10"
show_error_codes = true
strict_equality = true
warn_incomplete_stub = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true
[tool.poetry]
name = "pytile"
version = "2023.12.0"
description = "A simple Python API for TileĀ® Bluetooth trackers"
readme = "README.md"
authors = ["Aaron Bach <bachya1208@gmail.com>"]
license = "MIT"
repository = "https://github.com/bachya/pytile"
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
[tool.poetry.dependencies]
aiohttp = ">=3.9.0b0"
certifi = ">=2023.07.22"
python = "^3.10"
yarl = ">=1.9.2"
[tool.poetry.group.dev.dependencies]
GitPython = ">=3.1.35"
Pygments = ">=2.15.0"
aresponses = ">=2.1.6,<4.0.0"
blacken-docs = "^1.12.1"
codespell = "^2.2.2"
coverage = {version = ">=6.5,<8.0", extras = ["toml"]}
darglint = "^1.8.1"
isort = "^5.10.1"
mypy = "^1.2.0"
pre-commit = ">=2.20,<5.0"
pre-commit-hooks = ">=4.3,<6.0"
pylint = ">=2.15.5,<4.0.0"
pytest = ">=7.2,<9.0"
pytest-aiohttp = "^1.0.0"
pytest-asyncio = ">=0.20.1,<0.25.0"
pytest-cov = ">=4,<7"
pyupgrade = "^3.1.0"
pyyaml = "^6.0.1"
requests = ">=2.31.0"
ruff = ">=0.5.1,<0.7.2"
typing-extensions = "^4.8.0"
vulture = "^2.6"
yamllint = "^1.28.0"
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/bachya/pytile/issues"
Changelog = "https://github.com/bachya/pytile/releases"
[tool.pylint.BASIC]
expected-line-ending-format = "LF"
[tool.pylint.DESIGN]
max-attributes = 20
[tool.pylint.FORMAT]
max-line-length = 88
[tool.pylint.MASTER]
ignore = [
"tests",
]
load-plugins = [
"pylint.extensions.bad_builtin",
"pylint.extensions.code_style",
"pylint.extensions.docparams",
"pylint.extensions.docstyle",
"pylint.extensions.empty_comment",
"pylint.extensions.overlapping_exceptions",
"pylint.extensions.typing",
]
[tool.pylint."MESSAGES CONTROL"]
# Reasons disabled:
# unnecessary-pass - This can hurt readability
disable = [
"unnecessary-pass"
]
[tool.pylint.REPORTS]
score = false
[tool.pylint.SIMILARITIES]
# Minimum lines number of a similarity.
# We set this higher because of some cases where V2 and V3 functionality are
# similar, but abstracting them isn't feasible.
min-similarity-lines = 8
# Ignore comments when computing similarities.
ignore-comments = true
# Ignore docstrings when computing similarities.
ignore-docstrings = true
# Ignore imports when computing similarities.
ignore-imports = true
[tool.vulture]
min_confidence = 80
paths = ["pytile", "tests"]
verbose = false