Skip to content

Initial version of the library supporting ONVIF and pipelines managem…#971

Draft
jmotow wants to merge 9 commits into
mainfrom
onvif-vippet-library
Draft

Initial version of the library supporting ONVIF and pipelines managem…#971
jmotow wants to merge 9 commits into
mainfrom
onvif-vippet-library

Conversation

@jmotow

@jmotow jmotow commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

This is initial version of the new library which is expected to support ONVIF discovery/profile S and DLS pipeline(s) management.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

pylint

python/dlstreamer/onvif/ptz/controller.py|65| R0904: Too many public methods (26/20) (too-many-public-methods)
python/dlstreamer/onvif/ptz_test_app/app.py|292 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/ptz_test_app/app.py|332| R0912: Too many branches (22/12) (too-many-branches)
python/dlstreamer/onvif/ptz_test_app/app.py|332| R0915: Too many statements (68/50) (too-many-statements)
python/dlstreamer/onvif/ptz_test_app/app.py|635| R0912: Too many branches (13/12) (too-many-branches)
python/dlstreamer/onvif/video_engine/api.py|192| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|199| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|203| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|211| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|216| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|220| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|224| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|228| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|234| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|244| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine/api.py|51| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|66| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|70| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|74| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|78| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|82| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|86| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|90| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|90| C0103: Function name "setTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/api.py|94| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|94| C0103: Function name "getTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/api.py|98| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|98| C0103: Function name "setDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/api.py|102| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|102| C0103: Function name "getDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/api.py|106| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|110| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|114| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|118| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|122| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|122| R0913: Too many arguments (7/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/api.py|143| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|143| R0913: Too many arguments (6/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/api.py|164| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|168| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|172| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|176| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|180| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|34| R0902: Too many instance attributes (15/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/engine.py|67 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|83 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|91 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|95 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|100 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|110 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|118 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|127 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|127 col 4| C0103: Method name "setTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|130 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|130 col 4| C0103: Method name "getTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|133 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|133 col 4| C0103: Method name "setDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|136 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|136 col 4| C0103: Method name "getDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|139 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|144 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|149 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|153 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|164 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|164 col 4| R0913: Too many arguments (7/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|187 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|187 col 4| R0913: Too many arguments (6/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|204 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|210 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|214 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|297 col 8| C0415: Import outside toplevel (datetime.datetime, datetime.timezone) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine/engine.py|378 col 19| W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
python/dlstreamer/onvif/video_engine/engine.py|378 col 19| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine/engine.py|412 col 8| R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
python/dlstreamer/onvif/video_engine/engine.py|430 col 15| W0718: Catching too general exception Exception (broad-exception-caught)
python/dlstreamer/onvif/video_engine/engine.py|420 col 12| C0415: Import outside toplevel (camera_profiles.read_camera_profiles) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine/model.py|30 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/model.py|47 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/model.py|70 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|297| C0301: Line too long (187/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|300| C0301: Line too long (165/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|536| C0325: Unnecessary parens after 'not' keyword (superfluous-parens)
python/dlstreamer/onvif/video_engine_test_app/app.py|564| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine_test_app/app.py|19| E0001: Cannot import 'dlstreamer.onvif.video_engine' due to 'invalid decimal literal (dlstreamer.onvif.video_engine, line 10)' (syntax-error)
python/dlstreamer/onvif/video_engine_test_app/app.py|19| E0611: No name 'video_engine' in module 'dlstreamer.onvif' (no-name-in-module)
python/dlstreamer/onvif/video_engine_test_app/app.py|54 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|61 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|235| R0914: Too many local variables (16/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|500| R0914: Too many local variables (21/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|551 col 8| C0415: Import outside toplevel (urllib.parse.urlparse, urllib.parse.urlunparse) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|559 col 8| C0415: Import outside toplevel (subprocess) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|560 col 8| C0415: Import outside toplevel (time) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|500| R0915: Too many statements (51/50) (too-many-statements)
python/dlstreamer/onvif/video_engine_test_app/app.py|561 col 15| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| R0912: Too many branches (17/12) (too-many-branches)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| R0915: Too many statements (54/50) (too-many-statements)


from .api import * # noqa: F401,F403
from .api import __all__ # noqa: F401
openvino_genai_ubuntu24_2026.2.0.0_x86_64 No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
E0001: Parsing failed: 'invalid decimal literal (dlstreamer.onvif.video_engine.init, line 10)' (syntax-error)

> """


def run() -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0912: Too many branches (17/12) (too-many-branches)

# ---------------------------------------------------------------------------


class TestAppState:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0903: Too few public methods (0/2) (too-few-public-methods)

from .engine import OnvifEventEngine


def pull_events_once(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0913: Too many arguments (9/5) (too-many-arguments)

from .engine import OnvifEventEngine


def pull_events_once(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0917: Too many positional arguments (9/5) (too-many-positional-arguments)

async def stop_async(self, pan_tilt: bool = True, zoom: bool = True) -> None:
await asyncio.to_thread(self.stop, pan_tilt, zoom)

async def goto_preset_async(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

) -> None:
await asyncio.to_thread(self.goto_preset, preset_token, speed)

async def set_preset_async(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

) -> str:
return await asyncio.to_thread(self.set_preset, name, preset_token)

async def remove_preset_async(self, preset_token: str) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

async def remove_preset_async(self, preset_token: str) -> None:
await asyncio.to_thread(self.remove_preset, preset_token)

async def goto_home_async(self, speed: Optional[PTZVector] = None) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

async def goto_home_async(self, speed: Optional[PTZVector] = None) -> None:
await asyncio.to_thread(self.goto_home, speed)

async def set_home_async(self) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

print("| " + " | ".join(h.ljust(w) for h, w in zip(headers, widths)) + " |")
print(sep)
for row in rows:
print("| " + " | ".join(v.ljust(w) for v, w in zip(row, widths)) + " |")
print(f" [FAIL] {camera_id}: {result.error}")
return
mac_info = f" MAC={result.mac_address}" if result.mac_address else ""
print(f" [ OK ] {camera_id}: {len(result.profiles)} profile(s){mac_info}")

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

pylint

python/dlstreamer/onvif/video_engine/api.py|106| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|110| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|114| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|118| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|122| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|122| R0913: Too many arguments (7/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/api.py|143| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|143| R0913: Too many arguments (6/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/api.py|164| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|168| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|172| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|176| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/api.py|180| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|34| R0902: Too many instance attributes (15/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/engine.py|67 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|83 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|91 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|95 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|100 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|110 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|118 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|127 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|127 col 4| C0103: Method name "setTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|130 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|130 col 4| C0103: Method name "getTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|133 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|133 col 4| C0103: Method name "setDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|136 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|136 col 4| C0103: Method name "getDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|139 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|144 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|149 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|153 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|164 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|164 col 4| R0913: Too many arguments (7/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|187 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|187 col 4| R0913: Too many arguments (6/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|204 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|210 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|214 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|297 col 8| C0415: Import outside toplevel (datetime.datetime, datetime.timezone) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine/engine.py|378 col 19| W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
python/dlstreamer/onvif/video_engine/engine.py|378 col 19| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine/engine.py|412 col 8| R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
python/dlstreamer/onvif/video_engine/engine.py|430 col 15| W0718: Catching too general exception Exception (broad-exception-caught)
python/dlstreamer/onvif/video_engine/engine.py|420 col 12| C0415: Import outside toplevel (camera_profiles.read_camera_profiles) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine/model.py|30 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/model.py|47 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/model.py|70 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|297| C0301: Line too long (187/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|300| C0301: Line too long (165/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|536| C0325: Unnecessary parens after 'not' keyword (superfluous-parens)
python/dlstreamer/onvif/video_engine_test_app/app.py|564| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine_test_app/app.py|19| E0001: Cannot import 'dlstreamer.onvif.video_engine' due to 'invalid decimal literal (dlstreamer.onvif.video_engine, line 10)' (syntax-error)
python/dlstreamer/onvif/video_engine_test_app/app.py|19| E0611: No name 'video_engine' in module 'dlstreamer.onvif' (no-name-in-module)
python/dlstreamer/onvif/video_engine_test_app/app.py|54 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|61 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|235| R0914: Too many local variables (16/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|500| R0914: Too many local variables (21/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|551 col 8| C0415: Import outside toplevel (urllib.parse.urlparse, urllib.parse.urlunparse) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|559 col 8| C0415: Import outside toplevel (subprocess) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|560 col 8| C0415: Import outside toplevel (time) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|500| R0915: Too many statements (51/50) (too-many-statements)
python/dlstreamer/onvif/video_engine_test_app/app.py|561 col 15| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| R0912: Too many branches (17/12) (too-many-branches)
python/dlstreamer/onvif/video_engine_test_app/app.py|579| R0915: Too many statements (54/50) (too-many-statements)

# ---------------------------------------------------------------------------


class PTZController:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0904: Too many public methods (26/20) (too-many-public-methods)

rlist, _, _ = select.select([sys.stdin], [], [], timeout)
return bool(rlist)

def read(self) -> str:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

"""


def _run_control_screen(state: TestAppState, cap: PTZCapableProfile) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0912: Too many branches (22/12) (too-many-branches)

"""


def _run_control_screen(state: TestAppState, cap: PTZCapableProfile) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0915: Too many statements (68/50) (too-many-statements)

> """


def run() -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0912: Too many branches (13/12) (too-many-branches)

_DEFAULT_ENGINE.setTimeout(sec)


def getTimeout() -> int:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0103: Function name "getTimeout" doesn't conform to snake_case naming style (invalid-name)

return _DEFAULT_ENGINE.getTimeout()


def setDiscoveryTime(sec: int) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

return _DEFAULT_ENGINE.getTimeout()


def setDiscoveryTime(sec: int) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0103: Function name "setDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)

_DEFAULT_ENGINE.setDiscoveryTime(sec)


def getDiscoveryTime() -> int:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

_DEFAULT_ENGINE.setDiscoveryTime(sec)


def getDiscoveryTime() -> int:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0103: Function name "getDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)

jmotow added 2 commits July 13, 2026 15:29
…nt_manager APIs, and document all ONVIF libraries with architecture diagrams in their READMEs.
…UX and rule-action diagnostics, plus minor camera_profiles/event_manager cleanup.
print(f"\n [FAIL] {camera_id}: {r.error}")
continue
mac_info = f" MAC={r.mac_address}" if r.mac_address else ""
print(f"\n=== {camera_id} — {len(r.profiles)} profile(s){mac_info} ===")
jmotow added 5 commits July 14, 2026 17:06
… the ONVIF suite (event_manager, ptz, video_engine) and updated all imports, tests, and docs accordingly.
…he rest of the ONVIF suite, and updated all imports and README references accordingly.
…gs, clearer RTSP errors) and PTZ (home_supported check), refine test apps, and update docs/tests.
…ve static-binding pipeline_ref against the pipeline library, inject URL-encoded RTSP credentials into resolved {rtsp_url}, emit human-readable profile-resolution errors, and respawn dead pipeline processes.
…a camera advertises, with full Source/Data schema

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

pylint

python/dlstreamer/onvif/video_engine/dynamic.py|210 col 4| R0913: Too many arguments (9/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/dynamic.py|271| R0902: Too many instance attributes (13/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/dynamic.py|307 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/dynamic.py|313 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/dynamic.py|345 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/dynamic.py|370 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|41| R0902: Too many instance attributes (22/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/engine.py|85 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|112 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|120 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|124 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|129 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|142 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|150 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|159 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|159 col 4| C0103: Method name "setTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|162 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|162 col 4| C0103: Method name "getTimeout" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|165 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|165 col 4| C0103: Method name "setDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|168 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|168 col 4| C0103: Method name "getDiscoveryTime" doesn't conform to snake_case naming style (invalid-name)
python/dlstreamer/onvif/video_engine/engine.py|179 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|184 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|189 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|193 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|204 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|204 col 4| R0913: Too many arguments (7/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|227 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|227 col 4| R0913: Too many arguments (6/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|244 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|271 col 4| R0913: Too many arguments (8/5) (too-many-arguments)
python/dlstreamer/onvif/video_engine/engine.py|271 col 4| R0914: Too many local variables (16/15) (too-many-locals)
python/dlstreamer/onvif/video_engine/engine.py|331 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|335 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/engine.py|587 col 4| R0914: Too many local variables (16/15) (too-many-locals)
python/dlstreamer/onvif/video_engine/engine.py|821 col 19| W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
python/dlstreamer/onvif/video_engine/engine.py|821 col 19| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine/engine.py|862 col 8| R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
python/dlstreamer/onvif/video_engine/engine.py|41| R0904: Too many public methods (29/20) (too-many-public-methods)
python/dlstreamer/onvif/video_engine/types.py|31 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/types.py|50 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/types.py|79 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/types.py|128| R0902: Too many instance attributes (9/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/types.py|261 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine/types.py|266| R0902: Too many instance attributes (8/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine/types.py|289 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|31| C0301: Line too long (161/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|397| C0301: Line too long (187/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|400| C0301: Line too long (165/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|414| C0301: Line too long (183/160) (line-too-long)
python/dlstreamer/onvif/video_engine_test_app/app.py|780| C0325: Unnecessary parens after 'not' keyword (superfluous-parens)
python/dlstreamer/onvif/video_engine_test_app/app.py|808| C0303: Trailing whitespace (trailing-whitespace)
python/dlstreamer/onvif/video_engine_test_app/app.py|44| R0902: Too many instance attributes (12/7) (too-many-instance-attributes)
python/dlstreamer/onvif/video_engine_test_app/app.py|71 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|81 col 4| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|313| R0914: Too many local variables (16/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|744| R0914: Too many local variables (21/15) (too-many-locals)
python/dlstreamer/onvif/video_engine_test_app/app.py|795 col 8| C0415: Import outside toplevel (urllib.parse.urlparse, urllib.parse.urlunparse) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|803 col 8| C0415: Import outside toplevel (subprocess) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|804 col 8| C0415: Import outside toplevel (time) (import-outside-toplevel)
python/dlstreamer/onvif/video_engine_test_app/app.py|744| R0915: Too many statements (51/50) (too-many-statements)
python/dlstreamer/onvif/video_engine_test_app/app.py|805 col 15| R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
python/dlstreamer/onvif/video_engine_test_app/app.py|823| C0116: Missing function or method docstring (missing-function-docstring)
python/dlstreamer/onvif/video_engine_test_app/app.py|823| R0912: Too many branches (25/12) (too-many-branches)
python/dlstreamer/onvif/video_engine_test_app/app.py|823| R0915: Too many statements (78/50) (too-many-statements)

> """


def run() -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0912: Too many branches (18/12) (too-many-branches)

print(f"{{EVENT}} [event] type: {note.topic or '<unknown>'}")


async def watch_events(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0913: Too many arguments (11/5) (too-many-arguments)

print(f"{{EVENT}} [event] type: {note.topic or '<unknown>'}")


async def watch_events(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0917: Too many positional arguments (11/5) (too-many-positional-arguments)

async def get_event_properties_async(self) -> Any:
return await asyncio.to_thread(self.get_event_properties)

async def get_supported_event_topics_async(self) -> List[SupportedEventTopic]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

# ---------------------------------------------------------------------------


class OnvifEventEngine:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0904: Too many public methods (21/20) (too-many-public-methods)

logic isolated from event transport and pipeline mutation.
"""

def matches(self, rule: EventRule, notification: EventNotification) -> bool:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

)


class EventRuleMatcher:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0903: Too few public methods (1/2) (too-few-public-methods)

self._engine = engine
self._verbose = verbose

def execute(self, rule: EventRule) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
C0116: Missing function or method docstring (missing-function-docstring)

return True


class PipelineActionExecutor:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0903: Too few public methods (1/2) (too-few-public-methods)

)


class CameraEventWorker(threading.Thread):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
R0902: Too many instance attributes (9/7) (too-many-instance-attributes)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants