onvif-python 0.0.1__py3-none-any.whl

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 (106) hide show
  1. onvif/__init__.py +13 -0
  2. onvif/client.py +485 -0
  3. onvif/operator.py +130 -0
  4. onvif/services/__init__.py +75 -0
  5. onvif/services/accesscontrol.py +105 -0
  6. onvif/services/accessrules.py +47 -0
  7. onvif/services/actionengine.py +46 -0
  8. onvif/services/analytics/analytics.py +60 -0
  9. onvif/services/analytics/ruleengine.py +44 -0
  10. onvif/services/analyticsdevice.py +122 -0
  11. onvif/services/appmgmt.py +40 -0
  12. onvif/services/authenticationbehavior.py +83 -0
  13. onvif/services/credential.py +159 -0
  14. onvif/services/deviceio.py +165 -0
  15. onvif/services/devicemgmt.py +410 -0
  16. onvif/services/display.py +62 -0
  17. onvif/services/doorcontrol.py +93 -0
  18. onvif/services/events/events.py +41 -0
  19. onvif/services/events/notification.py +34 -0
  20. onvif/services/events/pullpoint.py +29 -0
  21. onvif/services/events/subscription.py +21 -0
  22. onvif/services/imaging.py +62 -0
  23. onvif/services/media.py +424 -0
  24. onvif/services/media2.py +310 -0
  25. onvif/services/provisioning.py +50 -0
  26. onvif/services/ptz.py +187 -0
  27. onvif/services/receiver.py +46 -0
  28. onvif/services/recording.py +136 -0
  29. onvif/services/replay.py +30 -0
  30. onvif/services/schedule.py +82 -0
  31. onvif/services/search.py +149 -0
  32. onvif/services/security/advancedsecurity.py +19 -0
  33. onvif/services/security/authorizationserver.py +31 -0
  34. onvif/services/security/dot1x.py +42 -0
  35. onvif/services/security/jwt.py +21 -0
  36. onvif/services/security/keystore.py +208 -0
  37. onvif/services/security/mediasigning.py +30 -0
  38. onvif/services/security/tlsserver.py +82 -0
  39. onvif/services/thermal.py +54 -0
  40. onvif/services/uplink.py +28 -0
  41. onvif/utils/__init__.py +4 -0
  42. onvif/utils/exceptions.py +33 -0
  43. onvif/utils/wsdl.py +297 -0
  44. onvif/wsdl/ver10/accesscontrol/wsdl/index.html +7 -0
  45. onvif/wsdl/ver10/accessrules/wsdl/accessrules.wsdl +702 -0
  46. onvif/wsdl/ver10/accessrules/wsdl/index.html +7 -0
  47. onvif/wsdl/ver10/actionengine.wsdl +1265 -0
  48. onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl +4159 -0
  49. onvif/wsdl/ver10/advancedsecurity/wsdl/index.html +7 -0
  50. onvif/wsdl/ver10/analyticsdevice.wsdl +709 -0
  51. onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl +502 -0
  52. onvif/wsdl/ver10/appmgmt/wsdl/index.html +7 -0
  53. onvif/wsdl/ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl +1382 -0
  54. onvif/wsdl/ver10/authenticationbehavior/wsdl/index.html +7 -0
  55. onvif/wsdl/ver10/credential/wsdl/credential.wsdl +2018 -0
  56. onvif/wsdl/ver10/credential/wsdl/index.html +7 -0
  57. onvif/wsdl/ver10/device/wsdl/devicemgmt.wsdl +4623 -0
  58. onvif/wsdl/ver10/deviceio.wsdl +1414 -0
  59. onvif/wsdl/ver10/display/display.wsdl +383 -0
  60. onvif/wsdl/ver10/display/wsdl/index.htm +383 -0
  61. onvif/wsdl/ver10/display.wsdl +521 -0
  62. onvif/wsdl/ver10/doorcontrol/wsdl/index.html +7 -0
  63. onvif/wsdl/ver10/events/wsdl/bw-2-vs-mod.wsdl +449 -0
  64. onvif/wsdl/ver10/events/wsdl/event-vs.wsdl +947 -0
  65. onvif/wsdl/ver10/events/wsdl/event.wsdl +947 -0
  66. onvif/wsdl/ver10/events/wsdl/index.html +7 -0
  67. onvif/wsdl/ver10/federatedsearch.wsdl +344 -0
  68. onvif/wsdl/ver10/media/wsdl/media.wsdl +3684 -0
  69. onvif/wsdl/ver10/pacs/accesscontrol.wsdl +1942 -0
  70. onvif/wsdl/ver10/pacs/doorcontrol.wsdl +1792 -0
  71. onvif/wsdl/ver10/pacs/types.xsd +181 -0
  72. onvif/wsdl/ver10/provisioning/wsdl/provisioning.wsdl +588 -0
  73. onvif/wsdl/ver10/receiver.wsdl +398 -0
  74. onvif/wsdl/ver10/recording.wsdl +1231 -0
  75. onvif/wsdl/ver10/replay.wsdl +221 -0
  76. onvif/wsdl/ver10/schedule/wsdl/index.html +7 -0
  77. onvif/wsdl/ver10/schedule/wsdl/schedule.wsdl +1383 -0
  78. onvif/wsdl/ver10/schema/common.xsd +422 -0
  79. onvif/wsdl/ver10/schema/metadatastream.xsd +520 -0
  80. onvif/wsdl/ver10/schema/onvif.xsd +9251 -0
  81. onvif/wsdl/ver10/search.wsdl +882 -0
  82. onvif/wsdl/ver10/thermal/wsdl/index.html +7 -0
  83. onvif/wsdl/ver10/thermal/wsdl/thermal.wsdl +777 -0
  84. onvif/wsdl/ver10/topics/topicns.xml +13 -0
  85. onvif/wsdl/ver10/uplink/wsdl/index.html +7 -0
  86. onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl +256 -0
  87. onvif/wsdl/ver20/analytics/humanbody.xsd +490 -0
  88. onvif/wsdl/ver20/analytics/humanface.xsd +501 -0
  89. onvif/wsdl/ver20/analytics/index.html +7 -0
  90. onvif/wsdl/ver20/analytics/radiometry.xsd +389 -0
  91. onvif/wsdl/ver20/analytics/rules.xsd +127 -0
  92. onvif/wsdl/ver20/analytics/wsdl/analytics.wsdl +757 -0
  93. onvif/wsdl/ver20/analytics/wsdl/index.html +7 -0
  94. onvif/wsdl/ver20/imaging/wsdl/imaging.wsdl +603 -0
  95. onvif/wsdl/ver20/media/wsdl/index.html +7 -0
  96. onvif/wsdl/ver20/media/wsdl/media.wsdl +2862 -0
  97. onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl +1450 -0
  98. onvif/wsdl/ver20/util/federated_search_documentation.html +1647 -0
  99. onvif/wsdl/ver20/util/fedsearch-docu-viewer.xsl +8 -0
  100. onvif/wsdl/ver20/util/onvif-wsdl-viewer.xsl +2580 -0
  101. onvif/wsdl/ver20/util/operationIndex.html +97 -0
  102. onvif_python-0.0.1.dist-info/METADATA +381 -0
  103. onvif_python-0.0.1.dist-info/RECORD +106 -0
  104. onvif_python-0.0.1.dist-info/WHEEL +5 -0
  105. onvif_python-0.0.1.dist-info/licenses/LICENSE.md +21 -0
  106. onvif_python-0.0.1.dist-info/top_level.txt +1 -0
onvif/utils/wsdl.py ADDED
@@ -0,0 +1,297 @@
1
+ # onvif/utils/wsdl.py
2
+
3
+ import os
4
+
5
+
6
+ class ONVIFWSDL:
7
+ BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "wsdl")
8
+
9
+ WSDL_MAP = {
10
+ "devicemgmt": {
11
+ "ver10": {
12
+ "path": os.path.join(BASE_DIR, "ver10/device/wsdl/devicemgmt.wsdl"),
13
+ "binding": "DeviceBinding",
14
+ "namespace": "http://www.onvif.org/ver10/device/wsdl",
15
+ }
16
+ },
17
+ "events": {
18
+ "ver10": {
19
+ "path": os.path.join(BASE_DIR, "ver10/events/wsdl/event-vs.wsdl"),
20
+ "binding": "EventBinding",
21
+ "namespace": "http://www.onvif.org/ver10/events/wsdl",
22
+ }
23
+ },
24
+ "pullpoint": {
25
+ "ver10": {
26
+ "path": os.path.join(BASE_DIR, "ver10/events/wsdl/event-vs.wsdl"),
27
+ "binding": "PullPointSubscriptionBinding",
28
+ "namespace": "http://www.onvif.org/ver10/events/wsdl",
29
+ }
30
+ },
31
+ "notification": {
32
+ "ver10": {
33
+ "path": os.path.join(BASE_DIR, "ver10/events/wsdl/event-vs.wsdl"),
34
+ "binding": "NotificationProducerBinding",
35
+ "namespace": "http://www.onvif.org/ver10/events/wsdl",
36
+ }
37
+ },
38
+ "subscription": {
39
+ "ver10": {
40
+ "path": os.path.join(BASE_DIR, "ver10/events/wsdl/event-vs.wsdl"),
41
+ "binding": "SubscriptionManagerBinding",
42
+ "namespace": "http://www.onvif.org/ver10/events/wsdl",
43
+ }
44
+ },
45
+ "accesscontrol": {
46
+ "ver10": {
47
+ "path": os.path.join(BASE_DIR, "ver10/pacs/accesscontrol.wsdl"),
48
+ "binding": "PACSBinding",
49
+ "namespace": "http://www.onvif.org/ver10/accesscontrol/wsdl",
50
+ }
51
+ },
52
+ "accessrules": {
53
+ "ver10": {
54
+ "path": os.path.join(
55
+ BASE_DIR, "ver10/accessrules/wsdl/accessrules.wsdl"
56
+ ),
57
+ "binding": "AccessRulesBinding",
58
+ "namespace": "http://www.onvif.org/ver10/accessrules/wsdl",
59
+ }
60
+ },
61
+ "actionengine": {
62
+ "ver10": {
63
+ "path": os.path.join(BASE_DIR, "ver10/actionengine.wsdl"),
64
+ "binding": "ActionEngineBinding",
65
+ "namespace": "http://www.onvif.org/ver10/actionengine/wsdl",
66
+ }
67
+ },
68
+ "advancedsecurity": {
69
+ "ver10": {
70
+ "path": os.path.join(
71
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
72
+ ),
73
+ "binding": "AdvancedSecurityServiceBinding",
74
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
75
+ }
76
+ },
77
+ "jwt": {
78
+ "ver10": {
79
+ "path": os.path.join(
80
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
81
+ ),
82
+ "binding": "JWTBinding",
83
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
84
+ }
85
+ },
86
+ "keystore": {
87
+ "ver10": {
88
+ "path": os.path.join(
89
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
90
+ ),
91
+ "binding": "KeystoreBinding",
92
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
93
+ }
94
+ },
95
+ "tlsserver": {
96
+ "ver10": {
97
+ "path": os.path.join(
98
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
99
+ ),
100
+ "binding": "TLSServerBinding",
101
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
102
+ }
103
+ },
104
+ "dot1x": {
105
+ "ver10": {
106
+ "path": os.path.join(
107
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
108
+ ),
109
+ "binding": "Dot1XBinding",
110
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
111
+ }
112
+ },
113
+ "authorizationserver": {
114
+ "ver10": {
115
+ "path": os.path.join(
116
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
117
+ ),
118
+ "binding": "AuthorizationServerBinding",
119
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
120
+ }
121
+ },
122
+ "mediasigning": {
123
+ "ver10": {
124
+ "path": os.path.join(
125
+ BASE_DIR, "ver10/advancedsecurity/wsdl/advancedsecurity.wsdl"
126
+ ),
127
+ "binding": "MediaSigningBinding",
128
+ "namespace": "http://www.onvif.org/ver10/advancedsecurity/wsdl",
129
+ }
130
+ },
131
+ "analytics": {
132
+ "ver20": {
133
+ "path": os.path.join(BASE_DIR, "ver20/analytics/wsdl/analytics.wsdl"),
134
+ "binding": "AnalyticsEngineBinding",
135
+ "namespace": "http://www.onvif.org/ver20/analytics/wsdl",
136
+ }
137
+ },
138
+ "ruleengine": {
139
+ "ver20": {
140
+ "path": os.path.join(BASE_DIR, "ver20/analytics/wsdl/analytics.wsdl"),
141
+ "binding": "RuleEngineBinding",
142
+ "namespace": "http://www.onvif.org/ver20/analytics/wsdl",
143
+ }
144
+ },
145
+ "analyticsdevice": {
146
+ "ver10": {
147
+ "path": os.path.join(BASE_DIR, "ver10/analyticsdevice.wsdl"),
148
+ "binding": "AnalyticsDeviceBinding",
149
+ "namespace": "http://www.onvif.org/ver10/analyticsdevice/wsdl",
150
+ }
151
+ },
152
+ "appmgmt": {
153
+ "ver10": {
154
+ "path": os.path.join(BASE_DIR, "ver10/appmgmt/wsdl/appmgmt.wsdl"),
155
+ "binding": "AppManagementBinding",
156
+ "namespace": "http://www.onvif.org/ver10/appmgmt/wsdl",
157
+ }
158
+ },
159
+ "authenticationbehavior": {
160
+ "ver10": {
161
+ "path": os.path.join(
162
+ BASE_DIR,
163
+ "ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl",
164
+ ),
165
+ "binding": "AuthenticationBehaviorBinding",
166
+ "namespace": "http://www.onvif.org/ver10/authenticationbehavior/wsdl",
167
+ }
168
+ },
169
+ "credential": {
170
+ "ver10": {
171
+ "path": os.path.join(BASE_DIR, "ver10/credential/wsdl/credential.wsdl"),
172
+ "binding": "CredentialBinding",
173
+ "namespace": "http://www.onvif.org/ver10/credential/wsdl",
174
+ }
175
+ },
176
+ "deviceio": {
177
+ "ver10": {
178
+ "path": os.path.join(BASE_DIR, "ver10/deviceio.wsdl"),
179
+ "binding": "DeviceIOBinding",
180
+ "namespace": "http://www.onvif.org/ver10/deviceIO/wsdl",
181
+ }
182
+ },
183
+ "display": {
184
+ "ver10": {
185
+ "path": os.path.join(BASE_DIR, "ver10/display.wsdl"),
186
+ "binding": "DisplayBinding",
187
+ "namespace": "http://www.onvif.org/ver10/display/wsdl",
188
+ }
189
+ },
190
+ "doorcontrol": {
191
+ "ver10": {
192
+ "path": os.path.join(BASE_DIR, "ver10/pacs/doorcontrol.wsdl"),
193
+ "binding": "DoorControlBinding",
194
+ "namespace": "http://www.onvif.org/ver10/doorcontrol/wsdl",
195
+ }
196
+ },
197
+ "imaging": {
198
+ "ver20": {
199
+ "path": os.path.join(BASE_DIR, "ver20/imaging/wsdl/imaging.wsdl"),
200
+ "binding": "ImagingBinding",
201
+ "namespace": "http://www.onvif.org/ver20/imaging/wsdl",
202
+ }
203
+ },
204
+ "media": {
205
+ "ver10": {
206
+ "path": os.path.join(BASE_DIR, "ver10/media/wsdl/media.wsdl"),
207
+ "binding": "MediaBinding",
208
+ "namespace": "http://www.onvif.org/ver10/media/wsdl",
209
+ },
210
+ },
211
+ "media2": {
212
+ "ver20": {
213
+ "path": os.path.join(BASE_DIR, "ver20/media/wsdl/media.wsdl"),
214
+ "binding": "Media2Binding",
215
+ "namespace": "http://www.onvif.org/ver20/media/wsdl",
216
+ },
217
+ },
218
+ "provisioning": {
219
+ "ver10": {
220
+ "path": os.path.join(
221
+ BASE_DIR, "ver10/provisioning/wsdl/provisioning.wsdl"
222
+ ),
223
+ "binding": "ProvisioningBinding",
224
+ "namespace": "http://www.onvif.org/ver10/provisioning/wsdl",
225
+ },
226
+ },
227
+ "ptz": {
228
+ "ver20": {
229
+ "path": os.path.join(BASE_DIR, "ver20/ptz/wsdl/ptz.wsdl"),
230
+ "binding": "PTZBinding",
231
+ "namespace": "http://www.onvif.org/ver20/ptz/wsdl",
232
+ },
233
+ },
234
+ "receiver": {
235
+ "ver10": {
236
+ "path": os.path.join(BASE_DIR, "ver10/receiver.wsdl"),
237
+ "binding": "ReceiverBinding",
238
+ "namespace": "http://www.onvif.org/ver10/receiver/wsdl",
239
+ },
240
+ },
241
+ "recording": {
242
+ "ver10": {
243
+ "path": os.path.join(BASE_DIR, "ver10/recording.wsdl"),
244
+ "binding": "RecordingBinding",
245
+ "namespace": "http://www.onvif.org/ver10/recording/wsdl",
246
+ },
247
+ },
248
+ "replay": {
249
+ "ver10": {
250
+ "path": os.path.join(BASE_DIR, "ver10/replay.wsdl"),
251
+ "binding": "ReplayBinding",
252
+ "namespace": "http://www.onvif.org/ver10/replay/wsdl",
253
+ },
254
+ },
255
+ "schedule": {
256
+ "ver10": {
257
+ "path": os.path.join(BASE_DIR, "ver10/schedule/wsdl/schedule.wsdl"),
258
+ "binding": "ScheduleBinding",
259
+ "namespace": "http://www.onvif.org/ver10/schedule/wsdl",
260
+ },
261
+ },
262
+ "search": {
263
+ "ver10": {
264
+ "path": os.path.join(BASE_DIR, "ver10/search.wsdl"),
265
+ "binding": "SearchBinding",
266
+ "namespace": "http://www.onvif.org/ver10/search/wsdl",
267
+ },
268
+ },
269
+ "thermal": {
270
+ "ver10": {
271
+ "path": os.path.join(BASE_DIR, "ver10/thermal/wsdl/thermal.wsdl"),
272
+ "binding": "ThermalBinding",
273
+ "namespace": "http://www.onvif.org/ver10/thermal/wsdl",
274
+ },
275
+ },
276
+ "uplink": {
277
+ "ver10": {
278
+ "path": os.path.join(BASE_DIR, "ver10/uplink/wsdl/uplink.wsdl"),
279
+ "binding": "UplinkBinding",
280
+ "namespace": "http://www.onvif.org/ver10/uplink/wsdl",
281
+ },
282
+ },
283
+ }
284
+
285
+ @classmethod
286
+ def get_definition(cls, service: str, version: str = "ver10") -> dict:
287
+ """Return WSDL definition including path, binding and namespace."""
288
+ if service not in cls.WSDL_MAP:
289
+ raise ValueError(f"Unknown service: {service}")
290
+ if version not in cls.WSDL_MAP[service]:
291
+ raise ValueError(f"Version {version} not available for {service}")
292
+
293
+ definition = cls.WSDL_MAP[service][version]
294
+ if not os.path.exists(definition["path"]):
295
+ raise FileNotFoundError(f"WSDL file not found: {definition['path']}")
296
+
297
+ return definition
@@ -0,0 +1,7 @@
1
+ <head>
2
+ <script type="text/javascript">
3
+ <!--
4
+ document.location.href="../../pacs/accesscontrol.wsdl";
5
+ //-->
6
+ </script>
7
+ </head>