onvif-python 0.2.2__tar.gz → 0.2.3__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 (133) hide show
  1. {onvif_python-0.2.2/onvif_python.egg-info → onvif_python-0.2.3}/PKG-INFO +5 -5
  2. {onvif_python-0.2.2 → onvif_python-0.2.3}/README.md +4 -4
  3. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/cli/interactive.py +2 -2
  4. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/cli/main.py +2 -2
  5. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/zeep.py +1 -14
  6. {onvif_python-0.2.2 → onvif_python-0.2.3/onvif_python.egg-info}/PKG-INFO +5 -5
  7. {onvif_python-0.2.2 → onvif_python-0.2.3}/pyproject.toml +1 -1
  8. {onvif_python-0.2.2 → onvif_python-0.2.3}/LICENSE.md +0 -0
  9. {onvif_python-0.2.2 → onvif_python-0.2.3}/MANIFEST.in +0 -0
  10. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/__init__.py +0 -0
  11. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/cli/__init__.py +0 -0
  12. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/cli/__main__.py +0 -0
  13. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/cli/utils.py +0 -0
  14. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/client.py +0 -0
  15. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/db/companies.db +0 -0
  16. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/db/products.db +0 -0
  17. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/operator.py +0 -0
  18. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/__init__.py +0 -0
  19. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/accesscontrol.py +0 -0
  20. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/accessrules.py +0 -0
  21. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/actionengine.py +0 -0
  22. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/analytics/analytics.py +0 -0
  23. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/analytics/ruleengine.py +0 -0
  24. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/analyticsdevice.py +0 -0
  25. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/appmgmt.py +0 -0
  26. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/authenticationbehavior.py +0 -0
  27. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/credential.py +0 -0
  28. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/deviceio.py +0 -0
  29. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/devicemgmt.py +0 -0
  30. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/display.py +0 -0
  31. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/doorcontrol.py +0 -0
  32. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/events/events.py +0 -0
  33. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/events/notification.py +0 -0
  34. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/events/pullpoint.py +0 -0
  35. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/events/subscription.py +0 -0
  36. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/imaging.py +0 -0
  37. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/media.py +0 -0
  38. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/media2.py +0 -0
  39. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/provisioning.py +0 -0
  40. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/ptz.py +0 -0
  41. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/receiver.py +0 -0
  42. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/recording.py +0 -0
  43. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/replay.py +0 -0
  44. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/schedule.py +0 -0
  45. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/search.py +0 -0
  46. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/advancedsecurity.py +0 -0
  47. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/authorizationserver.py +0 -0
  48. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/dot1x.py +0 -0
  49. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/jwt.py +0 -0
  50. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/keystore.py +0 -0
  51. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/mediasigning.py +0 -0
  52. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/security/tlsserver.py +0 -0
  53. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/thermal.py +0 -0
  54. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/services/uplink.py +0 -0
  55. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/__init__.py +0 -0
  56. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/discovery.py +0 -0
  57. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/error_handlers.py +0 -0
  58. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/exceptions.py +0 -0
  59. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/parser.py +0 -0
  60. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/service.py +0 -0
  61. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/wsdl.py +0 -0
  62. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/utils/xml_capture.py +0 -0
  63. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/LICENSE.md +0 -0
  64. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/accesscontrol/wsdl/index.html +0 -0
  65. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/accessrules/wsdl/accessrules.wsdl +0 -0
  66. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/accessrules/wsdl/index.html +0 -0
  67. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/actionengine.wsdl +0 -0
  68. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl +0 -0
  69. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/advancedsecurity/wsdl/index.html +0 -0
  70. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/analyticsdevice.wsdl +0 -0
  71. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl +0 -0
  72. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/appmgmt/wsdl/index.html +0 -0
  73. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl +0 -0
  74. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/authenticationbehavior/wsdl/index.html +0 -0
  75. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/credential/wsdl/credential.wsdl +0 -0
  76. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/credential/wsdl/index.html +0 -0
  77. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/device/wsdl/devicemgmt.wsdl +0 -0
  78. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/deviceio.wsdl +0 -0
  79. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/display/display.wsdl +0 -0
  80. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/display/wsdl/index.htm +0 -0
  81. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/display.wsdl +0 -0
  82. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/doorcontrol/wsdl/index.html +0 -0
  83. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/events/wsdl/bw-2-vs-mod.wsdl +0 -0
  84. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/events/wsdl/event-vs.wsdl +0 -0
  85. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/events/wsdl/event.wsdl +0 -0
  86. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/events/wsdl/index.html +0 -0
  87. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/federatedsearch.wsdl +0 -0
  88. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/media/wsdl/media.wsdl +0 -0
  89. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/pacs/accesscontrol.wsdl +0 -0
  90. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/pacs/doorcontrol.wsdl +0 -0
  91. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/pacs/types.xsd +0 -0
  92. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/provisioning/wsdl/provisioning.wsdl +0 -0
  93. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/receiver.wsdl +0 -0
  94. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/recording.wsdl +0 -0
  95. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/replay.wsdl +0 -0
  96. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/schedule/wsdl/index.html +0 -0
  97. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/schedule/wsdl/schedule.wsdl +0 -0
  98. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/schema/common.xsd +0 -0
  99. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/schema/metadatastream.xsd +0 -0
  100. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/schema/onvif.xsd +0 -0
  101. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/search.wsdl +0 -0
  102. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/thermal/wsdl/index.html +0 -0
  103. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/thermal/wsdl/thermal.wsdl +0 -0
  104. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/topics/topicns.xml +0 -0
  105. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/uplink/wsdl/index.html +0 -0
  106. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl +0 -0
  107. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/humanbody.xsd +0 -0
  108. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/humanface.xsd +0 -0
  109. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/index.html +0 -0
  110. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/radiometry.xsd +0 -0
  111. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/rules.xsd +0 -0
  112. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/wsdl/analytics.wsdl +0 -0
  113. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/analytics/wsdl/index.html +0 -0
  114. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/imaging/wsdl/imaging.wsdl +0 -0
  115. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/media/wsdl/index.html +0 -0
  116. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/media/wsdl/media.wsdl +0 -0
  117. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl +0 -0
  118. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/util/federated_search_documentation.html +0 -0
  119. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/util/fedsearch-docu-viewer.xsl +0 -0
  120. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/util/onvif-wsdl-viewer.xsl +0 -0
  121. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif/wsdl/ver20/util/operationIndex.html +0 -0
  122. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif_python.egg-info/SOURCES.txt +0 -0
  123. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif_python.egg-info/dependency_links.txt +0 -0
  124. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif_python.egg-info/entry_points.txt +0 -0
  125. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif_python.egg-info/requires.txt +0 -0
  126. {onvif_python-0.2.2 → onvif_python-0.2.3}/onvif_python.egg-info/top_level.txt +0 -0
  127. {onvif_python-0.2.2 → onvif_python-0.2.3}/setup.cfg +0 -0
  128. {onvif_python-0.2.2 → onvif_python-0.2.3}/setup.py +0 -0
  129. {onvif_python-0.2.2 → onvif_python-0.2.3}/tests/test_client.py +0 -0
  130. {onvif_python-0.2.2 → onvif_python-0.2.3}/tests/test_core.py +0 -0
  131. {onvif_python-0.2.2 → onvif_python-0.2.3}/tests/test_error_handlers.py +0 -0
  132. {onvif_python-0.2.2 → onvif_python-0.2.3}/tests/test_exceptions.py +0 -0
  133. {onvif_python-0.2.2 → onvif_python-0.2.3}/tests/test_wsdl_map.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onvif-python
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: A modern Python library for ONVIF-compliant devices
5
5
  Author-email: Nirsimetri Technologies® <open@nirsimetri.com>
6
6
  Maintainer: Kaburagi
@@ -47,7 +47,7 @@ Dynamic: license-file
47
47
 
48
48
  [![Codacy grade](https://img.shields.io/codacy/grade/bff08a94e4d447b690cea49c6594826d?label=Code%20Quality&logo=codacy)](https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
49
49
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/nirsimetri/onvif-python)
50
- [![PyPI](https://img.shields.io/badge/PyPI-0.2.2-orange?logo=archive)](https://pypi.org/project/onvif-python/)
50
+ [![PyPI](https://img.shields.io/badge/PyPI-0.2.3-orange?logo=archive)](https://pypi.org/project/onvif-python/)
51
51
  [![Downloads](https://img.shields.io/pypi/dm/onvif-python?label=Downloads&color=red)](https://clickpy.clickhouse.com/dashboard/onvif-python)
52
52
  <br>
53
53
  [![Build](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main)](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml)
@@ -91,7 +91,7 @@ This library simplifies that process by wrapping SOAP communication into a clean
91
91
 
92
92
  From official [PyPI](https://pypi.org/project/onvif-python/):
93
93
  ```bash
94
- pip install onvif-python
94
+ pip install --upgrade onvif-python
95
95
  ```
96
96
  Or clone this repository and install locally:
97
97
  ```bash
@@ -356,7 +356,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
356
356
  [--no-verify] [--no-patch] [--interactive] [--debug] [--wsdl WSDL] [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--version]
357
357
  [service] [method] [params ...]
358
358
 
359
- ONVIF Terminal Client — v0.2.2
359
+ ONVIF Terminal Client — v0.2.3
360
360
  https://github.com/nirsimetri/onvif-python
361
361
 
362
362
  positional arguments:
@@ -429,7 +429,7 @@ Examples:
429
429
  <summary><b>2. Interactive Shell</b></summary>
430
430
 
431
431
  ```bash
432
- ONVIF Interactive Shell — v0.2.2
432
+ ONVIF Interactive Shell — v0.2.3
433
433
  https://github.com/nirsimetri/onvif-python
434
434
 
435
435
  Basic Commands:
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Codacy grade](https://img.shields.io/codacy/grade/bff08a94e4d447b690cea49c6594826d?label=Code%20Quality&logo=codacy)](https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
6
6
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/nirsimetri/onvif-python)
7
- [![PyPI](https://img.shields.io/badge/PyPI-0.2.2-orange?logo=archive)](https://pypi.org/project/onvif-python/)
7
+ [![PyPI](https://img.shields.io/badge/PyPI-0.2.3-orange?logo=archive)](https://pypi.org/project/onvif-python/)
8
8
  [![Downloads](https://img.shields.io/pypi/dm/onvif-python?label=Downloads&color=red)](https://clickpy.clickhouse.com/dashboard/onvif-python)
9
9
  <br>
10
10
  [![Build](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main)](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml)
@@ -48,7 +48,7 @@ This library simplifies that process by wrapping SOAP communication into a clean
48
48
 
49
49
  From official [PyPI](https://pypi.org/project/onvif-python/):
50
50
  ```bash
51
- pip install onvif-python
51
+ pip install --upgrade onvif-python
52
52
  ```
53
53
  Or clone this repository and install locally:
54
54
  ```bash
@@ -313,7 +313,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
313
313
  [--no-verify] [--no-patch] [--interactive] [--debug] [--wsdl WSDL] [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--version]
314
314
  [service] [method] [params ...]
315
315
 
316
- ONVIF Terminal Client — v0.2.2
316
+ ONVIF Terminal Client — v0.2.3
317
317
  https://github.com/nirsimetri/onvif-python
318
318
 
319
319
  positional arguments:
@@ -386,7 +386,7 @@ Examples:
386
386
  <summary><b>2. Interactive Shell</b></summary>
387
387
 
388
388
  ```bash
389
- ONVIF Interactive Shell — v0.2.2
389
+ ONVIF Interactive Shell — v0.2.3
390
390
  https://github.com/nirsimetri/onvif-python
391
391
 
392
392
  Basic Commands:
@@ -194,7 +194,7 @@ class InteractiveShell(cmd.Cmd):
194
194
  " / __ \\/ | / / | / / _/ ____/",
195
195
  " / / / / |/ /| | / // // /_ ",
196
196
  "/ /_/ / /| / | |/ // // __/ ",
197
- "\\____/_/ |_/ |___/___/_/ v0.2.2",
197
+ "\\____/_/ |_/ |___/___/_/ v0.2.3",
198
198
  " ",
199
199
  ]
200
200
 
@@ -1400,7 +1400,7 @@ class InteractiveShell(cmd.Cmd):
1400
1400
  super().do_help(line)
1401
1401
  else:
1402
1402
  help_text = f"""
1403
- {colorize('ONVIF Interactive Shell — v0.2.2', 'cyan')}\n{colorize('https://github.com/nirsimetri/onvif-python', 'white')}
1403
+ {colorize('ONVIF Interactive Shell — v0.2.3', 'cyan')}\n{colorize('https://github.com/nirsimetri/onvif-python', 'white')}
1404
1404
 
1405
1405
  {colorize('Basic Commands:', 'yellow')}
1406
1406
  capabilities, caps - Show device capabilities
@@ -21,7 +21,7 @@ def create_parser():
21
21
  """Create argument parser for ONVIF CLI"""
22
22
  parser = argparse.ArgumentParser(
23
23
  prog="onvif",
24
- description=f"{colorize('ONVIF Terminal Client', 'yellow')} — v0.2.2\nhttps://github.com/nirsimetri/onvif-python",
24
+ description=f"{colorize('ONVIF Terminal Client', 'yellow')} — v0.2.3\nhttps://github.com/nirsimetri/onvif-python",
25
25
  formatter_class=argparse.RawDescriptionHelpFormatter,
26
26
  epilog=f"""
27
27
  Examples:
@@ -461,7 +461,7 @@ def main():
461
461
 
462
462
  # Show ONVIF CLI version
463
463
  if args.version:
464
- print(colorize("0.2.2", "yellow"))
464
+ print(colorize("0.2.3", "yellow"))
465
465
  sys.exit(0)
466
466
 
467
467
  # Handle product search
@@ -360,7 +360,6 @@ class ZeepPatcher:
360
360
  )
361
361
 
362
362
  if should_flatten:
363
- # This is truly a wrapper - flatten by extracting children to parent
364
363
  # Convert zeep object to dict to preserve manually added attributes
365
364
  if hasattr(inner_content, "__values__") or hasattr(
366
365
  inner_content, "__dict__"
@@ -371,20 +370,8 @@ class ZeepPatcher:
371
370
 
372
371
  # Set the wrapper field itself
373
372
  values[tag_name] = inner_content
373
+ # Don't copy fields up to parent - keep them in the structured object
374
374
 
375
- # If inner_content is a dict with children, copy them to parent too
376
- if isinstance(inner_content, dict):
377
- for child_key, child_val in inner_content.items():
378
- if child_key.startswith("_"):
379
- continue
380
- # Copy children to parent level if field exists and is None
381
- if (
382
- child_key in values
383
- and values[child_key] is None
384
- ):
385
- values[child_key] = child_val
386
- elif child_key not in values:
387
- values[child_key] = child_val
388
375
  else:
389
376
  # Not a wrapper - just set the field directly
390
377
  # Convert zeep object to dict to preserve manually added attributes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onvif-python
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: A modern Python library for ONVIF-compliant devices
5
5
  Author-email: Nirsimetri Technologies® <open@nirsimetri.com>
6
6
  Maintainer: Kaburagi
@@ -47,7 +47,7 @@ Dynamic: license-file
47
47
 
48
48
  [![Codacy grade](https://img.shields.io/codacy/grade/bff08a94e4d447b690cea49c6594826d?label=Code%20Quality&logo=codacy)](https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
49
49
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/nirsimetri/onvif-python)
50
- [![PyPI](https://img.shields.io/badge/PyPI-0.2.2-orange?logo=archive)](https://pypi.org/project/onvif-python/)
50
+ [![PyPI](https://img.shields.io/badge/PyPI-0.2.3-orange?logo=archive)](https://pypi.org/project/onvif-python/)
51
51
  [![Downloads](https://img.shields.io/pypi/dm/onvif-python?label=Downloads&color=red)](https://clickpy.clickhouse.com/dashboard/onvif-python)
52
52
  <br>
53
53
  [![Build](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main)](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml)
@@ -91,7 +91,7 @@ This library simplifies that process by wrapping SOAP communication into a clean
91
91
 
92
92
  From official [PyPI](https://pypi.org/project/onvif-python/):
93
93
  ```bash
94
- pip install onvif-python
94
+ pip install --upgrade onvif-python
95
95
  ```
96
96
  Or clone this repository and install locally:
97
97
  ```bash
@@ -356,7 +356,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
356
356
  [--no-verify] [--no-patch] [--interactive] [--debug] [--wsdl WSDL] [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--version]
357
357
  [service] [method] [params ...]
358
358
 
359
- ONVIF Terminal Client — v0.2.2
359
+ ONVIF Terminal Client — v0.2.3
360
360
  https://github.com/nirsimetri/onvif-python
361
361
 
362
362
  positional arguments:
@@ -429,7 +429,7 @@ Examples:
429
429
  <summary><b>2. Interactive Shell</b></summary>
430
430
 
431
431
  ```bash
432
- ONVIF Interactive Shell — v0.2.2
432
+ ONVIF Interactive Shell — v0.2.3
433
433
  https://github.com/nirsimetri/onvif-python
434
434
 
435
435
  Basic Commands:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "onvif-python"
7
- version = "0.2.2"
7
+ version = "0.2.3"
8
8
  description = "A modern Python library for ONVIF-compliant devices"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes
File without changes