22requires = [" setuptools>=46.4.0" ]
33build-backend = " setuptools.build_meta"
44
5+ [project ]
6+ name = " paradox-alarm-interface"
7+ dynamic = [" version" ]
8+ authors = [
9+ {name = " Jevgeni Kiski" , email = " yozik04@gmail.com" },
10+ {name = " João Paulo Barraca" , email = " jpbarraca@gmail.com" },
11+ ]
12+ description = " Interface to Paradox Alarm Panels"
13+ readme = " README.md"
14+ license = {file = " LICENSE" }
15+ keywords = [" paradox" , " alarm" , " ip150" , " serial" , " home-assistant" , " smarthome" , " mqtt" ]
16+ classifiers = [
17+ " Development Status :: 5 - Production/Stable" ,
18+ " Intended Audience :: Developers" ,
19+ " License :: OSI Approved :: Eclipse Public License 2.0 (EPL-2.0)" ,
20+ " Operating System :: OS Independent" ,
21+ " Programming Language :: Python" ,
22+ " Programming Language :: Python :: 3 :: Only" ,
23+ " Programming Language :: Python :: 3.8" ,
24+ " Programming Language :: Python :: 3.9" ,
25+ " Programming Language :: Python :: 3.10" ,
26+ " Programming Language :: Python :: 3.11" ,
27+ " Programming Language :: Python :: 3.12" ,
28+ " Programming Language :: Python :: 3.13" ,
29+ " Programming Language :: Python :: 3.14" ,
30+ ]
31+ requires-python = " >=3.8"
32+ dependencies = [
33+ " construct~=2.10.70" ,
34+ " argparse>=1.4.0" ,
35+ " python-slugify>=4.0.1" ,
36+ " pytz>=2021.3" ,
37+ " paho_mqtt>=2.1.0,<3" ,
38+ " requests>=2.20.0" ,
39+ " pyserial-asyncio>=0.4" ,
40+ ]
41+
42+ [project .urls ]
43+ Homepage = " https://github.com/ParadoxAlarmInterface/pai"
44+ "Bug Tracker" = " https://github.com/ParadoxAlarmInterface/pai/issues"
45+
46+ [project .scripts ]
47+ ip150-connection-decrypt = " paradox.console_scripts.ip150_connection_decrypt:main"
48+ pai-service = " paradox.console_scripts.pai_run:main"
49+ pai-dump-memory = " paradox.console_scripts.pai_dump_memory:main"
50+
51+ [project .optional-dependencies ]
52+ YAML = [
53+ " pyyaml>=5.2.0" ,
54+ ]
55+ Pushbullet = [
56+ " pushbullet.py>=0.11.0" ,
57+ " ws4py>=0.4.2" ,
58+ ]
59+ Signal = [
60+ " pygobject>=3.20.0" ,
61+ " pydbus>=0.6.0" ,
62+ " gi>=1.2" ,
63+ ]
64+
65+ [tool .setuptools ]
66+ zip-safe = true
67+
68+ [tool .setuptools .packages .find ]
69+ exclude = [" tests" , " tests.*" , " config.*" , " docs.*" ]
70+
71+ [tool .setuptools .dynamic ]
72+ version = {attr = " paradox.__version__" }
73+
574[tool .black ]
675target-version = [" py38" , " py39" , " py310" , " py311" , " py312" , " py313" , " py314" ]
776exclude = ' generated'
@@ -23,3 +92,9 @@ combine_as_imports = true
2392[tool .pytest .ini_options ]
2493asyncio_mode = " auto"
2594asyncio_default_fixture_loop_scope = " function"
95+
96+ [tool .coverage .report ]
97+ show_missing = true
98+
99+ [tool .codespell ]
100+ skip = " *.ipynb"
0 commit comments