diff --git a/README.md b/README.md index 63fa7ce..2917345 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@
Ask DeepWiki -PyPI Version +PyPI Version Pepy Total Downloads
Build @@ -319,7 +319,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--output OUTPUT] [--version] [service] [method] [params ...] -ONVIF Terminal Client — v0.2.9 +ONVIF Terminal Client — v0.2.10 https://github.com/nirsimetri/onvif-python positional arguments: @@ -400,7 +400,7 @@ Examples: 2. Interactive Shell ```bash -ONVIF Interactive Shell — v0.2.9 +ONVIF Interactive Shell — v0.2.10 https://github.com/nirsimetri/onvif-python Basic Commands: diff --git a/README_ID.md b/README_ID.md index e3dcb99..b7af256 100644 --- a/README_ID.md +++ b/README_ID.md @@ -3,7 +3,7 @@
Ask DeepWiki -PyPI Version +PyPI Version Pepy Total Downloads
Build @@ -319,7 +319,7 @@ usage: onvif [-h] [--host HOST] [--port PORT] [--username USERNAME] [--password [--cache {all,db,mem,none}] [--health-check-interval HEALTH_CHECK_INTERVAL] [--output OUTPUT] [--version] [service] [method] [params ...] -ONVIF Terminal Client — v0.2.9 +ONVIF Terminal Client — v0.2.10 https://github.com/nirsimetri/onvif-python positional arguments: @@ -401,7 +401,7 @@ Examples: ```bash -ONVIF Interactive Shell — v0.2.9 +ONVIF Interactive Shell — v0.2.10 https://github.com/nirsimetri/onvif-python Basic Commands: diff --git a/onvif/__init__.py b/onvif/__init__.py index 1efb484..bece76a 100644 --- a/onvif/__init__.py +++ b/onvif/__init__.py @@ -1,6 +1,6 @@ # onvif/__init__.py -__version__ = "0.2.9" +__version__ = "0.2.10" from .client import ONVIFClient from .operator import CacheMode diff --git a/onvif/cli/utils.py b/onvif/cli/utils.py index 9cdc7ce..0b2a168 100644 --- a/onvif/cli/utils.py +++ b/onvif/cli/utils.py @@ -221,7 +221,7 @@ def get_service_methods(service_obj) -> list: for attr_name in dir(service_obj): if not attr_name.startswith("_") and callable(getattr(service_obj, attr_name)): # Skip helper methods - if attr_name not in ["type", "desc", "operations"]: + if attr_name not in ["type", "desc", "operations", "to_dict"]: methods.append(attr_name) return sorted(methods) diff --git a/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl b/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl index 6d12711..fc0d750 100644 --- a/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl +++ b/onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl @@ -10,7 +10,7 @@ --> - + @@ -434,6 +434,11 @@ The base64-encoded DER representation of the X.509 certificate. + + + The keystore has a matching private key. + + diff --git a/onvif/wsdl/ver10/analyticsdevice.wsdl b/onvif/wsdl/ver10/analyticsdevice.wsdl index f36b182..2549eb5 100644 --- a/onvif/wsdl/ver10/analyticsdevice.wsdl +++ b/onvif/wsdl/ver10/analyticsdevice.wsdl @@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO --> - + diff --git a/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl b/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl index 1c9016f..848d20c 100644 --- a/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl +++ b/onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl @@ -1,7 +1,7 @@  - + diff --git a/onvif/wsdl/ver10/recording.wsdl b/onvif/wsdl/ver10/recording.wsdl index 341396b..22b3bbf 100644 --- a/onvif/wsdl/ver10/recording.wsdl +++ b/onvif/wsdl/ver10/recording.wsdl @@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO --> - + diff --git a/onvif/wsdl/ver10/schema/metadatastream.xsd b/onvif/wsdl/ver10/schema/metadatastream.xsd index d4b1741..967d094 100644 --- a/onvif/wsdl/ver10/schema/metadatastream.xsd +++ b/onvif/wsdl/ver10/schema/metadatastream.xsd @@ -11,7 +11,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:fc="http://www.onvif.org/ver20/analytics/humanface" xmlns:bd="http://www.onvif.org/ver20/analytics/humanbody" - xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.06"> + xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="25.12"> diff --git a/onvif/wsdl/ver10/schema/onvif.xsd b/onvif/wsdl/ver10/schema/onvif.xsd index 281f27f..48a81e9 100644 --- a/onvif/wsdl/ver10/schema/onvif.xsd +++ b/onvif/wsdl/ver10/schema/onvif.xsd @@ -8,7 +8,7 @@ Recipients of this document may copy, distribute, publish, or display this docum 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. 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. --> - + diff --git a/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl b/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl index 5c7c307..17fa416 100644 --- a/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl +++ b/onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl @@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO --> - + diff --git a/onvif/wsdl/ver20/media/wsdl/media.wsdl b/onvif/wsdl/ver20/media/wsdl/media.wsdl index 8212b02..670b0da 100644 --- a/onvif/wsdl/ver20/media/wsdl/media.wsdl +++ b/onvif/wsdl/ver20/media/wsdl/media.wsdl @@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO --> - + diff --git a/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl b/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl index 7d01747..0caf752 100644 --- a/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl +++ b/onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl @@ -10,7 +10,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO --> - + diff --git a/pyproject.toml b/pyproject.toml index 1278563..d5501e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "onvif-python" -version = "0.2.9" +version = "0.2.10" description = "A modern Python library for ONVIF-compliant devices" readme = "README.md" requires-python = ">=3.9" diff --git a/tests/services/base_service_test.py b/tests/services/base_service_test.py index 7681496..abc229d 100644 --- a/tests/services/base_service_test.py +++ b/tests/services/base_service_test.py @@ -146,7 +146,7 @@ def test_no_duplicate_methods(self): continue # Skip helper methods - if method_name in ["type", "desc", "operations"]: + if method_name in ["type", "desc", "operations", "to_dict"]: continue method_names.append(method_name) @@ -388,7 +388,7 @@ def test_operator_call_usage(self): implemented_methods = self.get_implemented_methods() # Skip helper methods that don't call operator.call() - helper_methods = ["type", "desc", "operations"] + helper_methods = ["type", "desc", "operations", "to_dict"] errors = [] @@ -447,7 +447,7 @@ def test_no_extra_methods(self): implemented_methods = self.get_implemented_methods() # Allowed helper methods that are not ONVIF operations - allowed_helper_methods = ["type", "desc", "operations"] + allowed_helper_methods = ["type", "desc", "operations", "to_dict"] extra_methods = [] for method_name in implemented_methods.keys(): @@ -482,7 +482,7 @@ def test_parameter_forwarding_for_all_methods(self): implemented_methods = self.get_implemented_methods() # Skip helper methods that don't call operator.call() - helper_methods = ["type", "desc", "operations"] + helper_methods = ["type", "desc", "operations", "to_dict"] errors = []