pyg90alarm 1.12.1__tar.gz → 1.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/.github/workflows/main.yml +0 -3
  2. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/.gitignore +3 -0
  3. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/MANIFEST.in +2 -0
  4. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/PKG-INFO +4 -3
  5. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/conf.py +1 -0
  6. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/requirements.txt +2 -1
  7. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/pyproject.toml +3 -0
  8. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/setup.py +3 -2
  9. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/sonar-project.properties +1 -0
  10. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/__init__.py +31 -4
  11. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/alarm.py +193 -163
  12. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/base_cmd.py +60 -52
  13. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/callback.py +41 -51
  14. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/config.py +10 -6
  15. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/const.py +9 -2
  16. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/definitions/sensors.py +12 -11
  17. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/device_notifications.py +65 -41
  18. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/discovery.py +31 -22
  19. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/entities/device.py +6 -7
  20. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/entities/sensor.py +138 -120
  21. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/history.py +42 -41
  22. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/host_info.py +27 -25
  23. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/host_status.py +25 -12
  24. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/paginated_cmd.py +46 -33
  25. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/paginated_result.py +13 -7
  26. pyg90alarm-1.14.0/src/pyg90alarm/py.typed +0 -0
  27. pyg90alarm-1.14.0/src/pyg90alarm/targeted_discovery.py +157 -0
  28. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/user_data_crc.py +18 -13
  29. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm.egg-info/PKG-INFO +4 -3
  30. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm.egg-info/SOURCES.txt +2 -1
  31. pyg90alarm-1.14.0/tests/__init__.py +0 -0
  32. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/conftest.py +7 -3
  33. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/device_mock.py +59 -46
  34. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/test_alarm.py +168 -49
  35. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/test_base_commands.py +102 -28
  36. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/test_discovery.py +39 -19
  37. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/test_notifications.py +106 -26
  38. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tests/test_paginated_commands.py +41 -13
  39. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/tox.ini +12 -16
  40. pyg90alarm-1.12.1/src/pyg90alarm/targeted_discovery.py +0 -98
  41. pyg90alarm-1.12.1/tests/test_callback.py +0 -27
  42. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/.github/CODEOWNERS +0 -0
  43. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/.pylintrc +0 -0
  44. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/.readthedocs.yaml +0 -0
  45. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/LICENSE +0 -0
  46. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/README.rst +0 -0
  47. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/.DS_Store +0 -0
  48. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/.gitignore +0 -0
  49. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/api-docs.rst +0 -0
  50. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/index.rst +0 -0
  51. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/docs/protocol.rst +0 -0
  52. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/setup.cfg +0 -0
  53. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/definitions/__init__.py +0 -0
  54. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/entities/__init__.py +0 -0
  55. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm/exceptions.py +0 -0
  56. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm.egg-info/dependency_links.txt +0 -0
  57. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm.egg-info/requires.txt +0 -0
  58. {pyg90alarm-1.12.1 → pyg90alarm-1.14.0}/src/pyg90alarm.egg-info/top_level.txt +0 -0
@@ -16,9 +16,6 @@ jobs:
16
16
  strategy:
17
17
  matrix:
18
18
  include:
19
- - os: ubuntu-latest
20
- python: '3.7'
21
- toxenv: py
22
19
  - os: ubuntu-latest
23
20
  python: '3.8'
24
21
  toxenv: py
@@ -4,6 +4,7 @@ dist/
4
4
  *.egg
5
5
  *.py[cod]
6
6
  __pycache__/
7
+ .venv/
7
8
  *.so
8
9
  *~
9
10
  .tox
@@ -14,3 +15,5 @@ flake8.txt
14
15
  pylint.txt
15
16
  .coverage*
16
17
  coverage.xml
18
+ .mypy_cache/
19
+ mypy/
@@ -8,3 +8,5 @@ include LICENSE
8
8
 
9
9
  # Include setup.py
10
10
  include setup.py
11
+
12
+ recursive-include src py.typed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyg90alarm
3
- Version: 1.12.1
3
+ Version: 1.14.0
4
4
  Summary: G90 Alarm system protocol
5
5
  Home-page: https://github.com/hostcc/pyg90alarm
6
6
  Author: Ilia Sotnikov
@@ -15,12 +15,13 @@ Classifier: Topic :: Home Automation
15
15
  Classifier: Topic :: System :: Hardware
16
16
  Classifier: License :: OSI Approved :: MIT License
17
17
  Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.7
19
18
  Classifier: Programming Language :: Python :: 3.8
20
19
  Classifier: Programming Language :: Python :: 3.9
21
20
  Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Programming Language :: Python :: 3 :: Only
23
- Requires-Python: >=3.7, <4
24
+ Requires-Python: >=3.8, <4
24
25
  Description-Content-Type: text/x-rst
25
26
  License-File: LICENSE
26
27
  Provides-Extra: dev
@@ -25,6 +25,7 @@ extensions = [
25
25
  'sphinx.ext.intersphinx',
26
26
  'enum_tools.autoenum',
27
27
  'sphinx.ext.autosectionlabel',
28
+ 'sphinx_autodoc_typehints',
28
29
  ]
29
30
 
30
31
  exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
@@ -1,5 +1,6 @@
1
1
  sphinx-rtd-theme
2
2
  enum-tools[sphinx]
3
+ sphinx-autodoc-typehints==2.3.0
3
4
  pygments>=2.15.0 # not directly required, pinned by Snyk to avoid a vulnerability
4
5
  sphinx>=3.3.0 # not directly required, pinned by Snyk to avoid a vulnerability
5
6
  setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability
@@ -7,4 +8,4 @@ certifi>=2023.7.22 # not directly required, pinned by Snyk to avoid a vulnerabil
7
8
  requests>=2.32.0 # not directly required, pinned by Snyk to avoid a vulnerability
8
9
  jinja2>=3.1.4 # not directly required, pinned by Snyk to avoid a vulnerability
9
10
  requests>=2.31.0 # not directly required, pinned by Snyk to avoid a vulnerability
10
- idna>=3.7 # not directly required, pinned by Snyk to avoid a vulnerability
11
+ idna>=3.7 # not directly required, pinned by Snyk to avoid a vulnerability
@@ -11,3 +11,6 @@ local_scheme = "no-local-version"
11
11
  log_cli = 1
12
12
  log_cli_level = "error"
13
13
  asyncio_mode = "auto"
14
+
15
+ [tool.coverage.run]
16
+ relative_files = true
@@ -36,17 +36,18 @@ setup(
36
36
  'Topic :: System :: Hardware',
37
37
  'License :: OSI Approved :: MIT License',
38
38
  'Programming Language :: Python :: 3',
39
- 'Programming Language :: Python :: 3.7',
40
39
  'Programming Language :: Python :: 3.8',
41
40
  'Programming Language :: Python :: 3.9',
42
41
  'Programming Language :: Python :: 3.10',
42
+ 'Programming Language :: Python :: 3.11',
43
+ 'Programming Language :: Python :: 3.12',
43
44
  'Programming Language :: Python :: 3 :: Only',
44
45
  ],
45
46
 
46
47
  keywords='g90, alarm, protocol',
47
48
  package_dir={'': 'src'},
48
49
  packages=find_packages(where='src'),
49
- python_requires='>=3.7, <4',
50
+ python_requires='>=3.8, <4',
50
51
  install_requires=[],
51
52
 
52
53
  extras_require={
@@ -2,4 +2,5 @@ sonar.python.version=3.7, 3.8, 3.9, 3.10
2
2
  sonar.python.coverage.reportPaths=coverage.xml
3
3
  sonar.python.pylint.reportPaths=pylint.txt
4
4
  sonar.python.flake8.reportPaths=flake8.txt
5
+ sonar.python.mypy.reportPaths=mypy/cobertura.xml
5
6
  sonar.coverage.exclusions=tests/**,docs/**,setup.py
@@ -22,9 +22,36 @@
22
22
  Python package to control G90-based alarm systems.
23
23
  """
24
24
 
25
- from .alarm import G90Alarm # noqa: F401
26
- from .base_cmd import G90BaseCommand # noqa: F401
27
- from .paginated_result import G90PaginatedResult # noqa: F401
28
- from .device_notifications import ( # noqa: F401
25
+ from .alarm import G90Alarm
26
+ from .base_cmd import G90BaseCommand
27
+ from .paginated_result import G90PaginatedResult
28
+ from .device_notifications import (
29
29
  G90DeviceAlert,
30
30
  )
31
+ from .entities.sensor import G90Sensor, G90SensorTypes
32
+ from .entities.device import G90Device
33
+ from .host_info import (
34
+ G90HostInfo, G90HostInfoWifiStatus, G90HostInfoGsmStatus
35
+ )
36
+ from .host_status import G90HostStatus
37
+ from .const import (
38
+ G90MessageTypes,
39
+ G90NotificationTypes,
40
+ G90ArmDisarmTypes,
41
+ G90AlertTypes,
42
+ G90AlertSources,
43
+ G90AlertStates,
44
+ G90AlertStateChangeTypes,
45
+ G90HistoryStates,
46
+ )
47
+ from .exceptions import G90Error, G90TimeoutError
48
+
49
+ __all__ = [
50
+ 'G90Alarm', 'G90BaseCommand', 'G90PaginatedResult', 'G90DeviceAlert',
51
+ 'G90Sensor', 'G90SensorTypes', 'G90Device', 'G90HostInfo',
52
+ 'G90HostInfoWifiStatus', 'G90HostInfoGsmStatus', 'G90HostStatus',
53
+ 'G90MessageTypes', 'G90NotificationTypes', 'G90ArmDisarmTypes',
54
+ 'G90AlertTypes', 'G90AlertSources', 'G90AlertStates',
55
+ 'G90AlertStateChangeTypes', 'G90HistoryStates', 'G90Error',
56
+ 'G90TimeoutError',
57
+ ]