onvif-python 0.2.8__tar.gz → 0.2.10__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 (145) hide show
  1. {onvif_python-0.2.8/onvif_python.egg-info → onvif_python-0.2.10}/PKG-INFO +4 -4
  2. {onvif_python-0.2.8 → onvif_python-0.2.10}/README.md +3 -3
  3. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/__init__.py +1 -1
  4. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/cli/utils.py +1 -1
  5. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/service.py +27 -31
  6. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl +6 -1
  7. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/analyticsdevice.wsdl +1 -1
  8. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl +2 -2
  9. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/device/wsdl/devicemgmt.wsdl +1 -1
  10. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/recording.wsdl +1 -1
  11. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/schema/metadatastream.xsd +1 -1
  12. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/schema/onvif.xsd +1 -1
  13. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl +1 -1
  14. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/media/wsdl/media.wsdl +1 -1
  15. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl +1 -1
  16. {onvif_python-0.2.8 → onvif_python-0.2.10/onvif_python.egg-info}/PKG-INFO +4 -4
  17. {onvif_python-0.2.8 → onvif_python-0.2.10}/pyproject.toml +1 -1
  18. {onvif_python-0.2.8 → onvif_python-0.2.10}/LICENSE.md +0 -0
  19. {onvif_python-0.2.8 → onvif_python-0.2.10}/MANIFEST.in +0 -0
  20. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/cli/__init__.py +0 -0
  21. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/cli/__main__.py +0 -0
  22. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/cli/interactive.py +0 -0
  23. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/cli/main.py +0 -0
  24. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/client.py +0 -0
  25. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/db/companies.db +0 -0
  26. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/db/products.db +0 -0
  27. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/operator.py +0 -0
  28. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/__init__.py +0 -0
  29. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/accesscontrol.py +0 -0
  30. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/accessrules.py +0 -0
  31. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/actionengine.py +0 -0
  32. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/analytics/analytics.py +0 -0
  33. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/analytics/ruleengine.py +0 -0
  34. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/analyticsdevice.py +0 -0
  35. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/appmgmt.py +0 -0
  36. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/authenticationbehavior.py +0 -0
  37. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/credential.py +0 -0
  38. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/deviceio.py +0 -0
  39. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/devicemgmt.py +0 -0
  40. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/display.py +0 -0
  41. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/doorcontrol.py +0 -0
  42. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/events/events.py +0 -0
  43. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/events/notification.py +0 -0
  44. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/events/pausable_subscription.py +0 -0
  45. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/events/pullpoint.py +0 -0
  46. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/events/subscription.py +0 -0
  47. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/imaging.py +0 -0
  48. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/media.py +0 -0
  49. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/media2.py +0 -0
  50. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/provisioning.py +0 -0
  51. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/ptz.py +0 -0
  52. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/receiver.py +0 -0
  53. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/recording.py +0 -0
  54. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/replay.py +0 -0
  55. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/schedule.py +0 -0
  56. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/search.py +0 -0
  57. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/advancedsecurity.py +0 -0
  58. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/authorizationserver.py +0 -0
  59. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/dot1x.py +0 -0
  60. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/jwt.py +0 -0
  61. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/keystore.py +0 -0
  62. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/mediasigning.py +0 -0
  63. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/security/tlsserver.py +0 -0
  64. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/thermal.py +0 -0
  65. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/services/uplink.py +0 -0
  66. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/__init__.py +0 -0
  67. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/discovery.py +0 -0
  68. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/error_handlers.py +0 -0
  69. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/exceptions.py +0 -0
  70. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/parser.py +0 -0
  71. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/wsdl.py +0 -0
  72. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/xml_capture.py +0 -0
  73. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/utils/zeep.py +0 -0
  74. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/LICENSE.md +0 -0
  75. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/b-2.xsd +0 -0
  76. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/bf-2.xsd +0 -0
  77. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/bw-2.wsdl +0 -0
  78. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/include +0 -0
  79. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/mpqf.xsd +0 -0
  80. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/r-2.xsd +0 -0
  81. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/rw-2.wsdl +0 -0
  82. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/soap-envelope +0 -0
  83. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/t-1.xsd +0 -0
  84. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/ws-addr.xsd +0 -0
  85. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/xml.xsd +0 -0
  86. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/schema/common/xmlmime +0 -0
  87. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/accesscontrol/wsdl/index.html +0 -0
  88. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/accessrules/wsdl/accessrules.wsdl +0 -0
  89. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/accessrules/wsdl/index.html +0 -0
  90. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/actionengine.wsdl +0 -0
  91. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/advancedsecurity/wsdl/index.html +0 -0
  92. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/appmgmt/wsdl/index.html +0 -0
  93. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl +0 -0
  94. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/authenticationbehavior/wsdl/index.html +0 -0
  95. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/credential/wsdl/credential.wsdl +0 -0
  96. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/credential/wsdl/index.html +0 -0
  97. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/deviceio.wsdl +0 -0
  98. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/display/display.wsdl +0 -0
  99. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/display/wsdl/index.htm +0 -0
  100. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/display.wsdl +0 -0
  101. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/doorcontrol/wsdl/index.html +0 -0
  102. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/events/wsdl/bw-2-vs-mod.wsdl +0 -0
  103. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/events/wsdl/event-vs.wsdl +0 -0
  104. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/events/wsdl/event.wsdl +0 -0
  105. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/events/wsdl/index.html +0 -0
  106. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/federatedsearch.wsdl +0 -0
  107. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/media/wsdl/media.wsdl +0 -0
  108. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/pacs/accesscontrol.wsdl +0 -0
  109. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/pacs/doorcontrol.wsdl +0 -0
  110. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/pacs/types.xsd +0 -0
  111. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/provisioning/wsdl/provisioning.wsdl +0 -0
  112. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/receiver.wsdl +0 -0
  113. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/replay.wsdl +0 -0
  114. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/schedule/wsdl/index.html +0 -0
  115. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/schedule/wsdl/schedule.wsdl +0 -0
  116. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/schema/common.xsd +0 -0
  117. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/search.wsdl +0 -0
  118. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/thermal/wsdl/index.html +0 -0
  119. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/thermal/wsdl/thermal.wsdl +0 -0
  120. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/topics/topicns.xml +0 -0
  121. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver10/uplink/wsdl/index.html +0 -0
  122. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/humanbody.xsd +0 -0
  123. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/humanface.xsd +0 -0
  124. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/index.html +0 -0
  125. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/radiometry.xsd +0 -0
  126. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/rules.xsd +0 -0
  127. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/wsdl/analytics.wsdl +0 -0
  128. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/analytics/wsdl/index.html +0 -0
  129. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/imaging/wsdl/imaging.wsdl +0 -0
  130. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/media/wsdl/index.html +0 -0
  131. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/util/federated_search_documentation.html +0 -0
  132. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/util/fedsearch-docu-viewer.xsl +0 -0
  133. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/util/onvif-wsdl-viewer.xsl +0 -0
  134. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif/wsdl/ver20/util/operationIndex.html +0 -0
  135. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif_python.egg-info/SOURCES.txt +0 -0
  136. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif_python.egg-info/dependency_links.txt +0 -0
  137. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif_python.egg-info/entry_points.txt +0 -0
  138. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif_python.egg-info/requires.txt +0 -0
  139. {onvif_python-0.2.8 → onvif_python-0.2.10}/onvif_python.egg-info/top_level.txt +0 -0
  140. {onvif_python-0.2.8 → onvif_python-0.2.10}/setup.cfg +0 -0
  141. {onvif_python-0.2.8 → onvif_python-0.2.10}/setup.py +0 -0
  142. {onvif_python-0.2.8 → onvif_python-0.2.10}/tests/test_client.py +0 -0
  143. {onvif_python-0.2.8 → onvif_python-0.2.10}/tests/test_core.py +0 -0
  144. {onvif_python-0.2.8 → onvif_python-0.2.10}/tests/test_error_handlers.py +0 -0
  145. {onvif_python-0.2.8 → onvif_python-0.2.10}/tests/test_exceptions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onvif-python
3
- Version: 0.2.8
3
+ Version: 0.2.10
4
4
  Summary: A modern Python library for ONVIF-compliant devices
5
5
  Author-email: Nirsimetri Technologies® <open@nirsimetri.com>
6
6
  Maintainer: Kaburagi
@@ -46,7 +46,7 @@ Dynamic: license-file
46
46
  <div align="center">
47
47
  <a href="https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img src="https://app.codacy.com/project/badge/Grade/bff08a94e4d447b690cea49c6594826d"/></a>
48
48
  <a href="https://deepwiki.com/nirsimetri/onvif-python"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg"></a>
49
- <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.8-orange?logo=archive&color=yellow"></a>
49
+ <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.10-orange?logo=archive&color=yellow"></a>
50
50
  <a href="https://pepy.tech/projects/onvif-python"><img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/onvif-python?label=Downloads&color=red"></a>
51
51
  <br>
52
52
  <a href="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml"><img alt="Build" src="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main"></a>
@@ -362,7 +362,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
362
362
  [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--output OUTPUT] [--version]
363
363
  [service] [method] [params ...]
364
364
 
365
- ONVIF Terminal Client — v0.2.8
365
+ ONVIF Terminal Client — v0.2.10
366
366
  https://github.com/nirsimetri/onvif-python
367
367
 
368
368
  positional arguments:
@@ -443,7 +443,7 @@ Examples:
443
443
  <summary><b>2. Interactive Shell</b></summary>
444
444
 
445
445
  ```bash
446
- ONVIF Interactive Shell — v0.2.8
446
+ ONVIF Interactive Shell — v0.2.10
447
447
  https://github.com/nirsimetri/onvif-python
448
448
 
449
449
  Basic Commands:
@@ -3,7 +3,7 @@
3
3
  <div align="center">
4
4
  <a href="https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img src="https://app.codacy.com/project/badge/Grade/bff08a94e4d447b690cea49c6594826d"/></a>
5
5
  <a href="https://deepwiki.com/nirsimetri/onvif-python"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg"></a>
6
- <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.8-orange?logo=archive&color=yellow"></a>
6
+ <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.10-orange?logo=archive&color=yellow"></a>
7
7
  <a href="https://pepy.tech/projects/onvif-python"><img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/onvif-python?label=Downloads&color=red"></a>
8
8
  <br>
9
9
  <a href="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml"><img alt="Build" src="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main"></a>
@@ -319,7 +319,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
319
319
  [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--output OUTPUT] [--version]
320
320
  [service] [method] [params ...]
321
321
 
322
- ONVIF Terminal Client — v0.2.8
322
+ ONVIF Terminal Client — v0.2.10
323
323
  https://github.com/nirsimetri/onvif-python
324
324
 
325
325
  positional arguments:
@@ -400,7 +400,7 @@ Examples:
400
400
  <summary><b>2. Interactive Shell</b></summary>
401
401
 
402
402
  ```bash
403
- ONVIF Interactive Shell — v0.2.8
403
+ ONVIF Interactive Shell — v0.2.10
404
404
  https://github.com/nirsimetri/onvif-python
405
405
 
406
406
  Basic Commands:
@@ -1,6 +1,6 @@
1
1
  # onvif/__init__.py
2
2
 
3
- __version__ = "0.2.8"
3
+ __version__ = "0.2.10"
4
4
 
5
5
  from .client import ONVIFClient
6
6
  from .operator import CacheMode
@@ -221,7 +221,7 @@ def get_service_methods(service_obj) -> list:
221
221
  for attr_name in dir(service_obj):
222
222
  if not attr_name.startswith("_") and callable(getattr(service_obj, attr_name)):
223
223
  # Skip helper methods
224
- if attr_name not in ["type", "desc", "operations"]:
224
+ if attr_name not in ["type", "desc", "operations", "to_dict"]:
225
225
  methods.append(attr_name)
226
226
  return sorted(methods)
227
227
 
@@ -8,36 +8,6 @@ logger = logging.getLogger(__name__)
8
8
  logger.addHandler(logging.NullHandler())
9
9
 
10
10
 
11
- class ONVIFResponse:
12
- """Transparent wrapper that adds to_dict() to zeep objects."""
13
-
14
- def __init__(self, wrapped_object):
15
- object.__setattr__(self, "_wrapped", wrapped_object)
16
-
17
- def __getattr__(self, name):
18
- return getattr(self._wrapped, name)
19
-
20
- def __setattr__(self, name, value):
21
- if name == "_wrapped":
22
- object.__setattr__(self, name, value)
23
- else:
24
- setattr(self._wrapped, name, value)
25
-
26
- def __repr__(self):
27
- return repr(self._wrapped)
28
-
29
- def __str__(self):
30
- return str(self._wrapped)
31
-
32
- def to_dict(self):
33
- """Convert zeep object to Python dictionary."""
34
- return (
35
- {}
36
- if self._wrapped is None
37
- else zeep.helpers.serialize_object(self._wrapped)
38
- )
39
-
40
-
41
11
  def _is_zeep_object(obj):
42
12
  """Check if an object is a Zeep-generated object.
43
13
 
@@ -135,7 +105,7 @@ class ONVIFService:
135
105
  logger.debug(f"Calling wrapped ONVIF method: {name}")
136
106
  result = attr(*args, **kwargs)
137
107
  logger.debug(f"ONVIF method {name} completed successfully")
138
- return ONVIFResponse(result) if result is not None else result
108
+ return result
139
109
  except ONVIFOperationException as oe:
140
110
  # Re-raise ONVIF exceptions as-is
141
111
  service_name = getattr(self.operator, "service_name", "Unknown")
@@ -149,6 +119,32 @@ class ONVIFService:
149
119
 
150
120
  return wrapped_method
151
121
 
122
+ def to_dict(self, zeep_object):
123
+ """
124
+ Convert a zeep object (result from ONVIF operation) to Python dictionary.
125
+
126
+ Args:
127
+ zeep_object: The zeep object returned from ONVIF operations
128
+
129
+ Returns:
130
+ dict: Python dictionary representation of the zeep object
131
+
132
+ Example:
133
+ device = client.devicemgmt()
134
+
135
+ info = device.GetDeviceInformation()
136
+ info_dict = device.to_dict(info)
137
+ print(info_dict)
138
+
139
+ profiles = media.GetProfiles()
140
+ profiles_dict = device.to_dict(profiles)
141
+ """
142
+ try:
143
+ return {} if zeep_object is None else zeep.helpers.serialize_object(zeep_object)
144
+ except Exception as e:
145
+ logger.error(f"Failed to convert zeep object to dict: {e}")
146
+ return {}
147
+
152
148
  def type(self, type_name: str):
153
149
  """
154
150
  Create and return an instance of the specified ONVIF type.
@@ -10,7 +10,7 @@
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tas="http://www.onvif.org/ver10/advancedsecurity/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://www.onvif.org/ver10/advancedsecurity/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" targetNamespace="http://www.onvif.org/ver10/advancedsecurity/wsdl" version="25.06">
13
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" targetNamespace="http://www.onvif.org/ver10/advancedsecurity/wsdl" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../schema/onvif.xsd"/>
15
15
  <!--===================================================-->
16
16
  <!-- Data types used by the security configuration features -->
@@ -434,6 +434,11 @@
434
434
  <xs:documentation>The base64-encoded DER representation of the X.509 certificate.</xs:documentation>
435
435
  </xs:annotation>
436
436
  </xs:element>
437
+ <xs:element name="HasPrivateKey" type="xs:boolean" minOccurs="0">
438
+ <xs:annotation>
439
+ <xs:documentation>The keystore has a matching private key.</xs:documentation>
440
+ </xs:annotation>
441
+ </xs:element>
437
442
  <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/> <!-- first ONVIF then Vendor -->
438
443
  </xs:sequence>
439
444
  <xs:anyAttribute processContents="lax"/>
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tad="http://www.onvif.org/ver10/analyticsdevice/wsdl" targetNamespace="http://www.onvif.org/ver10/analyticsdevice/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver10/analyticsdevice/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="2.1.1">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver10/analyticsdevice/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../ver10/schema/onvif.xsd"/>
15
15
  <!--===============================-->
16
16
  <xs:element name="GetServiceCapabilities">
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <?xml-stylesheet type="text/xsl" href="../../../ver20/util/onvif-wsdl-viewer.xsl"?>
3
3
  <!--
4
- Copyright (c) 2008-2022 by ONVIF: Open Network Video Interface Forum. All rights reserved.
4
+ Copyright (c) 2008-2026 by ONVIF: Open Network Video Interface Forum. All rights reserved.
5
5
 
6
6
  Recipients of this document may copy, distribute, publish, or display this document so long as this copyright notice, license and disclaimer are retained with all copies of the document. No license is granted to modify this document.
7
7
 
@@ -17,7 +17,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
17
17
  targetNamespace="http://www.onvif.org/ver10/appmgmt/wsdl">
18
18
 
19
19
  <wsdl:types>
20
- <xs:schema targetNamespace="http://www.onvif.org/ver10/appmgmt/wsdl" version="22.12">
20
+ <xs:schema targetNamespace="http://www.onvif.org/ver10/appmgmt/wsdl" version="26.06">
21
21
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../schema/onvif.xsd"/>
22
22
 
23
23
  <xs:simpleType name="AppState">
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" targetNamespace="http://www.onvif.org/ver10/device/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" elementFormDefault="qualified" version="25.06">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../../ver10/schema/onvif.xsd"/>
15
15
  <!--===============================-->
16
16
  <xs:element name="GetServices">
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:trc="http://www.onvif.org/ver10/recording/wsdl" targetNamespace="http://www.onvif.org/ver10/recording/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver10/recording/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.06">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver10/recording/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../ver10/schema/onvif.xsd"/>
15
15
  <!-- Message Request/Responses elements -->
16
16
  <!--===============================-->
@@ -11,7 +11,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
11
11
  xmlns:tt="http://www.onvif.org/ver10/schema"
12
12
  xmlns:fc="http://www.onvif.org/ver20/analytics/humanface"
13
13
  xmlns:bd="http://www.onvif.org/ver20/analytics/humanbody"
14
- xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.06">
14
+ xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.12">
15
15
  <xs:include schemaLocation="common.xsd"/>
16
16
  <xs:import namespace="http://docs.oasis-open.org/wsn/b-2" schemaLocation="../../schema/common/b-2.xsd"/>
17
17
  <xs:import namespace="http://www.onvif.org/ver20/analytics/humanface" schemaLocation="../../ver20/analytics/humanface.xsd"/>
@@ -8,7 +8,7 @@ Recipients of this document may copy, distribute, publish, or display this docum
8
8
  THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND THEIR AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE; OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
9
9
  IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT, WHETHER OR NOT (1) THE CORPORATION, MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2) SUCH DAMAGES WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT. THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT APPLY TO, INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS AND THEIR RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN CERTAIN WRITTEN POLICIES OF THE CORPORATION.
10
10
  -->
11
- <xs:schema xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.06">
11
+ <xs:schema xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.12">
12
12
  <xs:include schemaLocation="common.xsd"/>
13
13
  <xs:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="../../schema/common/xmlmime"/>
14
14
  <xs:import namespace="http://www.w3.org/2003/05/soap-envelope" schemaLocation="../../schema/common/soap-envelope"/>
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tup="http://www.onvif.org/ver10/uplink/wsdl" targetNamespace="http://www.onvif.org/ver10/uplink/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver10/uplink/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.06">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver10/uplink/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../schema/onvif.xsd"/>
15
15
  <!-- Message Request/Responses elements -->
16
16
  <!--===============================-->
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tr2="http://www.onvif.org/ver20/media/wsdl" targetNamespace="http://www.onvif.org/ver20/media/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver20/media/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.06">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver20/media/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../../ver10/schema/onvif.xsd"/>
15
15
  <!-- Message Request/Responses elements -->
16
16
  <!--===============================-->
@@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
10
10
  -->
11
11
  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" name="PTZService" targetNamespace="http://www.onvif.org/ver20/ptz/wsdl">
12
12
  <wsdl:types>
13
- <xs:schema targetNamespace="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="22.12">
13
+ <xs:schema targetNamespace="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="25.12">
14
14
  <xs:import namespace="http://www.onvif.org/ver10/schema" schemaLocation="../../../ver10/schema/onvif.xsd"/>
15
15
  <!-- Message Request/Responses elements -->
16
16
  <!--===============================-->
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onvif-python
3
- Version: 0.2.8
3
+ Version: 0.2.10
4
4
  Summary: A modern Python library for ONVIF-compliant devices
5
5
  Author-email: Nirsimetri Technologies® <open@nirsimetri.com>
6
6
  Maintainer: Kaburagi
@@ -46,7 +46,7 @@ Dynamic: license-file
46
46
  <div align="center">
47
47
  <a href="https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img src="https://app.codacy.com/project/badge/Grade/bff08a94e4d447b690cea49c6594826d"/></a>
48
48
  <a href="https://deepwiki.com/nirsimetri/onvif-python"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg"></a>
49
- <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.8-orange?logo=archive&color=yellow"></a>
49
+ <a href="https://pypi.org/project/onvif-python/"><img alt="PyPI Version" src="https://img.shields.io/badge/PyPI-0.2.10-orange?logo=archive&color=yellow"></a>
50
50
  <a href="https://pepy.tech/projects/onvif-python"><img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/onvif-python?label=Downloads&color=red"></a>
51
51
  <br>
52
52
  <a href="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml"><img alt="Build" src="https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml/badge.svg?branch=main"></a>
@@ -362,7 +362,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password
362
362
  [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--output OUTPUT] [--version]
363
363
  [service] [method] [params ...]
364
364
 
365
- ONVIF Terminal Client — v0.2.8
365
+ ONVIF Terminal Client — v0.2.10
366
366
  https://github.com/nirsimetri/onvif-python
367
367
 
368
368
  positional arguments:
@@ -443,7 +443,7 @@ Examples:
443
443
  <summary><b>2. Interactive Shell</b></summary>
444
444
 
445
445
  ```bash
446
- ONVIF Interactive Shell — v0.2.8
446
+ ONVIF Interactive Shell — v0.2.10
447
447
  https://github.com/nirsimetri/onvif-python
448
448
 
449
449
  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.8"
7
+ version = "0.2.10"
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