# systemctl-mqtt - MQTT client triggering & reporting shutdown on systemd-based systems # # Copyright (C) 2020 Fabian Peter Hammerle # # 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 . 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"], )