2020-05-12 10:11:47 +00:00
|
|
|
[tool.poetry]
|
|
|
|
name = "python-kasa"
|
2023-10-29 23:57:29 +00:00
|
|
|
version = "0.5.4"
|
2020-05-12 10:11:47 +00:00
|
|
|
description = "Python API for TP-Link Kasa Smarthome devices"
|
|
|
|
license = "GPL-3.0-or-later"
|
2023-02-18 21:40:42 +00:00
|
|
|
authors = ["python-kasa developers"]
|
2020-05-12 10:11:47 +00:00
|
|
|
repository = "https://github.com/python-kasa/python-kasa"
|
|
|
|
readme = "README.md"
|
|
|
|
packages = [
|
|
|
|
{ include = "kasa" }
|
|
|
|
]
|
Release 0.4.0 (#221)
This is the first proper python-kasa release since forking from pyhs100.
* Improved I/O handling, including asyncio interface, request merging & connection sharing
* API improvements throughout the whole package
* Support for LED strips
* Improved bulb support (transitions, support for more models)
* Onboarding is now possible without a mobile app
* Improved documentation
* And various other improvements, see the full changelog for details!
Thanks to all contributors, from testers, and issue reporters to those who have submitted pull requests! Thanks also to those who donated test devices to help to make this release happen!
Special thanks for this release go to @basnijholt (initial asyncio port, push to make this fork happen) and @bdraco (fixing the last release blocker, emeter support for powerstrips).
If you are using python-kasa in your projects, we would be happy to hear about it. Feel free to post a note on Github discussions!
If it is a project that could be interesting for other users and/or developers, feel also free to create a PR to add a short note to the README file.
2021-09-27 17:10:05 +00:00
|
|
|
include = ["CHANGELOG.md"]
|
2020-05-12 10:11:47 +00:00
|
|
|
|
2023-02-18 21:09:35 +00:00
|
|
|
[tool.poetry.urls]
|
|
|
|
"Bug Tracker" = "https://github.com/python-kasa/python-kasa/issues"
|
|
|
|
"Documentation" = "https://python-kasa.readthedocs.io"
|
|
|
|
|
2020-05-12 10:11:47 +00:00
|
|
|
[tool.poetry.scripts]
|
|
|
|
kasa = "kasa.cli:cli"
|
|
|
|
|
|
|
|
[tool.poetry.dependencies]
|
2023-05-17 18:03:08 +00:00
|
|
|
python = "^3.8"
|
2022-01-14 15:32:32 +00:00
|
|
|
anyio = "*" # see https://github.com/python-trio/asyncclick/issues/18
|
2022-04-05 16:36:57 +00:00
|
|
|
asyncclick = ">=8"
|
2023-08-28 15:48:49 +00:00
|
|
|
pydantic = ">=1"
|
2020-05-12 10:11:47 +00:00
|
|
|
|
2023-06-17 23:03:04 +00:00
|
|
|
# speed ups
|
2023-06-30 00:43:01 +00:00
|
|
|
orjson = { "version" = ">=3.9.1", optional = true }
|
|
|
|
kasa-crypt = { "version" = ">=0.2.0", optional = true }
|
2023-06-17 23:03:04 +00:00
|
|
|
|
2020-06-30 00:29:52 +00:00
|
|
|
# required only for docs
|
2022-04-05 23:13:27 +00:00
|
|
|
sphinx = { version = "^4", optional = true }
|
2020-07-29 17:28:00 +00:00
|
|
|
sphinx_rtd_theme = { version = "^0", optional = true }
|
|
|
|
sphinxcontrib-programoutput = { version = "^0", optional = true }
|
2023-02-18 21:09:35 +00:00
|
|
|
myst-parser = { version = "*", optional = true }
|
|
|
|
docutils = { version = ">=0.17", optional = true }
|
2023-07-21 09:50:54 +00:00
|
|
|
async-timeout = ">=3.0.0"
|
2020-06-30 00:29:52 +00:00
|
|
|
|
2023-08-03 11:19:31 +00:00
|
|
|
[tool.poetry.group.dev.dependencies]
|
2023-02-18 21:09:35 +00:00
|
|
|
pytest = "*"
|
|
|
|
pytest-cov = "*"
|
|
|
|
pytest-asyncio = "*"
|
2020-05-12 10:11:47 +00:00
|
|
|
pytest-sugar = "*"
|
|
|
|
pre-commit = "*"
|
|
|
|
voluptuous = "*"
|
|
|
|
toml = "*"
|
|
|
|
tox = "*"
|
2023-02-18 21:09:35 +00:00
|
|
|
pytest-mock = "*"
|
|
|
|
codecov = "*"
|
|
|
|
xdoctest = "*"
|
|
|
|
coverage = {version = "*", extras = ["toml"]}
|
2020-06-30 00:29:52 +00:00
|
|
|
|
|
|
|
[tool.poetry.extras]
|
2023-02-18 21:09:35 +00:00
|
|
|
docs = ["sphinx", "sphinx_rtd_theme", "sphinxcontrib-programoutput", "myst-parser", "docutils"]
|
2023-06-30 00:43:01 +00:00
|
|
|
speedups = ["orjson", "kasa-crypt"]
|
2020-06-30 00:29:52 +00:00
|
|
|
|
2020-05-12 10:11:47 +00:00
|
|
|
[tool.coverage.run]
|
|
|
|
source = ["kasa"]
|
|
|
|
branch = true
|
2020-05-27 14:55:18 +00:00
|
|
|
omit = ["kasa/tests/*"]
|
2020-05-12 10:11:47 +00:00
|
|
|
|
|
|
|
[tool.coverage.report]
|
|
|
|
exclude_lines = [
|
|
|
|
# ignore abstract methods
|
|
|
|
"raise NotImplementedError",
|
|
|
|
"def __repr__"
|
|
|
|
]
|
|
|
|
|
2021-09-19 21:45:48 +00:00
|
|
|
[tool.pytest.ini_options]
|
|
|
|
markers = [
|
|
|
|
"requires_dummy: test requires dummy data to pass, skipped on real devices",
|
|
|
|
]
|
2022-11-13 22:34:47 +00:00
|
|
|
asyncio_mode = "auto"
|
2021-09-19 21:45:48 +00:00
|
|
|
|
2022-04-05 23:13:27 +00:00
|
|
|
[tool.doc8]
|
|
|
|
paths = ["docs"]
|
|
|
|
ignore = ["D001"]
|
2023-02-18 21:09:35 +00:00
|
|
|
ignore-path-errors = ["docs/source/index.rst;D000"]
|
2022-04-05 23:13:27 +00:00
|
|
|
|
2020-05-12 10:11:47 +00:00
|
|
|
[build-system]
|
2021-10-01 22:51:16 +00:00
|
|
|
requires = ["poetry-core>=1.0.0"]
|
|
|
|
build-backend = "poetry.core.masonry.api"
|
2023-10-29 22:15:42 +00:00
|
|
|
|
|
|
|
[tool.ruff]
|
|
|
|
target-version = "py38"
|
|
|
|
select = [
|
|
|
|
"E", # pycodestyle
|
|
|
|
"D", # pydocstyle
|
|
|
|
"F", # pyflakes
|
|
|
|
"UP", # pyupgrade
|
|
|
|
"B", # flake8-bugbear
|
|
|
|
"SIM", # flake8-simplify
|
|
|
|
"I", # isort
|
|
|
|
"S", # bandit
|
|
|
|
]
|
|
|
|
ignore = [
|
|
|
|
"D105", # Missing docstring in magic method
|
|
|
|
"D107", # Missing docstring in `__init__`
|
|
|
|
]
|
|
|
|
|
|
|
|
[tool.ruff.pydocstyle]
|
|
|
|
convention = "pep257"
|
|
|
|
|
|
|
|
[tool.ruff.per-file-ignores]
|
|
|
|
"kasa/tests/*.py" = [
|
|
|
|
"D100",
|
|
|
|
"D101",
|
|
|
|
"D102",
|
|
|
|
"D103",
|
|
|
|
"D104",
|
|
|
|
"F401",
|
|
|
|
"S101", # allow asserts
|
|
|
|
"E501", # ignore line-too-longs
|
|
|
|
]
|
|
|
|
"docs/source/conf.py" = [
|
|
|
|
"D100",
|
|
|
|
"D103",
|
|
|
|
]
|