-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathsetup.py
81 lines (77 loc) · 3.31 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# systemctl-mqtt - MQTT client triggering & reporting shutdown on systemd-based systems
#
# Copyright (C) 2020 Fabian Peter Hammerle <fabian@hammerle.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import pathlib
import setuptools
_REPO_URL = "https://github.com/fphammerle/systemctl-mqtt"
setuptools.setup(
name="systemctl-mqtt",
packages=setuptools.find_packages(),
description="MQTT client triggering & reporting shutdown on systemd-based systems",
long_description=pathlib.Path(__file__).parent.joinpath("README.md").read_text(),
long_description_content_type="text/markdown",
author="Fabian Peter Hammerle",
author_email="fabian@hammerle.me",
url=_REPO_URL,
project_urls={"Changelog": _REPO_URL + "/blob/master/CHANGELOG.md"},
license="GPLv3+",
keywords=[
"IoT",
"automation",
"home-assistant",
"home-automation",
"lock",
"mqtt",
"shutdown",
"systemd",
],
classifiers=[
# https://pypi.org/classifiers/
"Development Status :: 4 - Beta",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: POSIX :: Linux",
# .github/workflows/python.yml
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Home Automation",
],
entry_points={
"console_scripts": [
"systemctl-mqtt = systemctl_mqtt:_main",
]
},
# >=3.6 variable type hints, f-strings & * to force keyword-only arguments
# >=3.8 importlib.metadata
python_requires=">=3.9", # <3.9 untested
# > Currently, the only main loop supported by dbus-python is GLib.
# https://web.archive.org/web/20241228081405/https://dbus.freedesktop.org/doc/dbus-python/tutorial.html#setting-up-an-event-loop
# PyGObject depends on pycairo
# > When pip-installing systemctl-mqtt on a system without graphics it
# > fails as pycairo fails building.
# https://web.archive.org/web/20241228083145/https://github.com/fphammerle/systemctl-mqtt/issues/39
# > Jeepney is a pure Python D-Bus module. It consists of an IO-free core
# > implementing the protocol, and integrations for both blocking I/O and
# > for different asynchronous frameworks.
# https://web.archive.org/web/20241206000411/https://www.freedesktop.org/wiki/Software/DBusBindings/
install_requires=["aiomqtt>=2,<3", "jeepney>=0.8,<0.9"],
setup_requires=["setuptools_scm"],
tests_require=["pytest"],
)