docs: document the pygroup element - #1176
Merged
Merged
Conversation
Adds documentation for the pygroup pipeline element (#1168), which colocates multiple sequential PyFuncs into a single GStreamer element while preserving a per-stage telemetry span for each colocated function. - savant_101/70_python.rst: new "Grouping PyFuncs Into a Single Element" section covering syntax, sequential execution, per-stage telemetry, dev-server support, and the sample. - reference/api/module_config.rst: register PyGroupElement in the PipelineElement inheritance diagram and autosummary. - getting_started/3_samples.rst: add a catalog entry for the sample. - samples/pygroup/README.md: add a README for the sample (run steps, stream URLs, and how to inspect the per-stage spans in Jaeger). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbsaV4NhYriTyUqxuzKd8Q
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds end-user documentation for the pygroup pipeline element (introduced in #1168) and documents the accompanying samples/pygroup demo, focusing on syntax, sequential execution semantics, and per-stage OpenTelemetry spans.
Changes:
- Documented
pygroupusage and behavior in the Python Function Unit guide, including telemetry span structure and dev-server behavior. - Registered
PyGroupElementin the module configuration API docs (inheritance diagram + autosummary). - Added the PyGroup sample to the samples catalog and introduced a new sample README with run + telemetry inspection steps.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| samples/pygroup/README.md | New sample README describing how to run the demo and inspect per-stage spans in Jaeger. |
| docs/source/savant_101/70_python.rst | Adds a new section explaining how to configure and use pygroup, including telemetry details. |
| docs/source/reference/api/module_config.rst | Updates API docs to include PyGroupElement in hierarchy and autosummary. |
| docs/source/getting_started/3_samples.rst | Adds a catalog entry for the PyGroup sample. |
Use the fully-qualified module path `savant.deepstream.pyfunc.NvDsPyFuncPlugin` for the :py:class: reference. `NvDsPyFuncPlugin` is defined in `savant.deepstream.pyfunc` and is not re-exported from `savant.deepstream`, so `~savant.deepstream.NvDsPyFuncPlugin` was an unresolved Sphinx reference. This matches how every other deepstream class is referenced in the docs. Fixes both the newly added occurrence and the pre-existing one in the same file. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbsaV4NhYriTyUqxuzKd8Q
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds documentation for the pygroup pipeline element (#1168), which colocates multiple sequential PyFuncs into a single GStreamer element while preserving a per-stage telemetry span for each colocated function.
Claude-Session: https://claude.ai/code/session_01TbsaV4NhYriTyUqxuzKd8Q
Note
Low Risk
Documentation-only changes with no runtime, config parsing, or pipeline behavior modifications.
Overview
Documents the
pygrouppipeline element for colocating sequential PyFuncs in one GStreamer element while keeping per-stage OpenTelemetry spans.savant_101/70_python.rstadds Grouping PyFuncs Into a Single Element: YAML with anelementslist, why colocation avoids inter-PyFunc queues, guidance on when to use groups vs standalonepyfunc, nested tracing layout, Development Server reload behavior, and a link to the sample. It also fixes theNvDsPyFuncPlugincross-reference tosavant.deepstream.pyfunc.reference/api/module_config.rstregistersPyGroupElementin thePipelineElementinheritance diagram and autosummary.getting_started/3_samples.rstadds a PyGroup: Colocated PyFuncs catalog entry (features, adapters, sample link).samples/pygroup/README.mdis new: run steps (x86/L4T compose), RTSP/LL-HLS URLs, and how to inspect per-PyFunc spans in Jaeger.Reviewed by Cursor Bugbot for commit 95f0e94. Bugbot is set up for automated code reviews on this repo. Configure here.