151 lines
3.9 KiB
TOML
151 lines
3.9 KiB
TOML
[project]
|
|
name = "appdaemon"
|
|
description="Apps for the Home Assistant home automation package."
|
|
readme = "README.md"
|
|
authors = [
|
|
{name = "Andrew I Cockburn", email = "appdaemon@acockburn.com"},
|
|
]
|
|
dynamic = ["version"] # The verison is computed dynamically. See `tool.setuptools.dynamic` section below.
|
|
license= { file = "LICENSE.md" }
|
|
requires-python = ">=3.10"
|
|
keywords=[ "appdaemon", "home", "automation" ]
|
|
dependencies = [
|
|
'importlib-metadata; python_version<"3.8"',
|
|
'aiohttp >= 3.9.0,< 3.12.0',
|
|
'aiohttp_jinja2 >= 1.5.1,< 1.7.0',
|
|
'astral ~= 3.2',
|
|
'bcrypt >= 4.0.1,< 4.3.0',
|
|
'deepdiff == 8.2.0',
|
|
'feedparser ~= 6.0.10',
|
|
'iso8601 >= 1.1,< 2.2',
|
|
'paho-mqtt >= 1.6.1,< 2.2.0',
|
|
'pid ~= 3.0.4',
|
|
'python-dateutil >= 2.8.2,< 2.10.0',
|
|
'python-socketio >= 5.5,< 5.12',
|
|
'pytz >= 2022.7.1,< 2025.2.0',
|
|
'pyyaml ~= 6.0.1',
|
|
'requests >= 2.28.2,< 2.33.0',
|
|
'sockjs >= 0.11,< 0.14',
|
|
'uvloop==0.21.0; sys_platform != "win32"',
|
|
'tomli==2.2.1',
|
|
'tomli_w >= 1.0,< 1.3'
|
|
]
|
|
|
|
classifiers= [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Natural Language :: English",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Home Automation",
|
|
]
|
|
|
|
[project.urls]
|
|
documentation = "https://appdaemon.readthedocs.io"
|
|
repository = "https://github.com/AppDaemon"
|
|
changelog = "https://github.com/AppDaemon/appdaemon/blob/master/docs/HISTORY.rst"
|
|
|
|
|
|
# Declare development dependencies as optional
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pip-tools >= 6.12.3,< 7.5.0",
|
|
"build >= 0.10,< 1.3",
|
|
"flake8 ~= 7.1.1",
|
|
"black >= 23.1,< 25.2",
|
|
'pre-commit >= 3.1.1,< 3.9.0; python_version>"3.7"', # pre-commit does not support Python < 3.8
|
|
"pytest >= 7.2.1,< 8.4.0",
|
|
"ruff>= 0.0.261,< 0.7.0"
|
|
]
|
|
|
|
# Dependencies required to build the documentation using sphinx
|
|
doc = [
|
|
"sphinx-autobuild >= 2021.3.14,< 2024.10.0",
|
|
"sphinx-rtd-theme == 3.0.2",
|
|
"pygments >= 2.14,< 2.20",
|
|
"myst-parser == 4.0.0",
|
|
]
|
|
|
|
|
|
# Define the main CLI script
|
|
[project.scripts]
|
|
appdaemon = "appdaemon.__main__:main"
|
|
|
|
# Use setuptools as the build system
|
|
[build-system]
|
|
requires = ["setuptools >= 61.0.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
# Tell setuptools how to find the package source files
|
|
# https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
|
|
[tool.setuptools.packages.find]
|
|
exclude = ["contrib", "docs", "docs.*", "tests*"]
|
|
|
|
# Dynamically read version from version.py module
|
|
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#dynamic-metadata
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "appdaemon.version.__version__"}
|
|
|
|
# Taken from: https://docs.pytest.org/en/7.1.x/explanation/goodpractices.html
|
|
[tool.pytest.ini_options]
|
|
addopts = [
|
|
"--import-mode=importlib",
|
|
]
|
|
|
|
# black configuration
|
|
[tool.black]
|
|
line-length = 120
|
|
|
|
# Ruff
|
|
|
|
[tool.ruff]
|
|
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
|
lint.select = ["E", "F"]
|
|
lint.ignore = []
|
|
|
|
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
|
lint.fixable = ["E", "F", "UP"]
|
|
lint.unfixable = []
|
|
|
|
src = ["appdaemon"]
|
|
|
|
# Exclude a variety of commonly ignored directories.
|
|
exclude = [
|
|
".bzr",
|
|
".direnv",
|
|
".eggs",
|
|
".git",
|
|
".hg",
|
|
".mypy_cache",
|
|
".nox",
|
|
".pants.d",
|
|
".pytype",
|
|
".ruff_cache",
|
|
".svn",
|
|
".tox",
|
|
".venv",
|
|
"__pypackages__",
|
|
"_build",
|
|
"buck-out",
|
|
"build",
|
|
"dist",
|
|
"node_modules",
|
|
"venv",
|
|
]
|
|
lint.per-file-ignores = {}
|
|
|
|
line-length = 500
|
|
|
|
# Allow unused variables when underscore-prefixed.
|
|
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
# Assume Python 3.10.
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint.mccabe]
|
|
# Unlike Flake8, default to a complexity level of 10.
|
|
max-complexity = 10
|