Skip to main content

PyPNM-CMTS Logo

PyPNM-CMTS - CMTS Operations Toolkit for PyPNM (Under Development)

Repo version PyPI version Python CI Ubuntu CI MacOS Ubuntu License: Apache-2.0

PyPNM-CMTS extends the PyPNM toolkit with CMTS-focused automation, validation, and operational workflows. It installs pypnm-docsis as the base library and adds CMTS capabilities on top.

Table of contents

Choose your path

Path Description
Use PyPNM-CMTS as a library Install pypnm-docsis-cmts into an existing Python environment.
Run the full repo Clone the repo and use the CLI + tools stack.

Getting started

Install from PyPI (library only)

If you only need the library, install from PyPI:

pip install pypnm-docsis-cmts

1) Clone

git clone https://github.com/PyPNMApps/PyPNM-CMTS.git
cd PyPNM-CMTS

2) Install

Run the installer:

./install.sh

Optional: use a custom venv directory:

./install.sh .env-dev

Optional: development install with extra tooling:

./install.sh --development

The development install attempts to install gitleaks using the system package manager, and falls back to a GitHub release download if the package is unavailable.

Optional: update from the latest GA or hot-fix tag:

./install.sh --update-ga
./install.sh --update-hot-fix

Optional: update pypnm-docsis in the active venv:

./install.sh --update-development-pypnm-docsis
./install.sh --update-development-pypnm-docsis v1.4.2.0

Without a tag, the installer upgrades to the latest prerelease. With a tag or version, it installs that exact pypnm-docsis release.

Cleanup and uninstall:

./install.sh --clean
./install.sh --uninstall

3) Activate the virtual environment

If you used the installer defaults, activate the .env environment:

source .env/bin/activate

4) Run the CLI

pypnm-cmts --version

5) Run the FastAPI service

pypnm-cmts serve

The service binds to 127.0.0.1:8080 by default and reads CMTS adapter settings from system.json. Use pypnm-cmts config-menu to set the CMTS hostname and SNMP communities, or pass --cmts-hostname/--read-community overrides at runtime.

For development-only debug routes under /ops/debug, start the service with:

pypnm-cmts serve --debug

To keep the service running after logout, launch it in the background:

pypnm-cmts serve --run-background

Optional explicit log and pidfile paths:

pypnm-cmts serve --run-background \
  --background-log-file /var/log/pypnm-cmts.log \
  --background-pidfile /var/run/pypnm-cmts.pid

Tested CMTS platforms

Vendor Model Status
Casa Systems C100G TBD
Cisco CBR8 TBD
CommScope RMD TBD
Harmonic CableOS Cloud-Native TBD

Documentation

  • Docs are being assembled; see docs/ as the starting point.
  • CLI examples

SNMP notes

  • SNMPv2c is supported
  • SNMPv3 is currently stubbed and not yet supported

CableLabs specifications & MIBs

License

Apache License 2.0 and NOTICE

Maintainer

Maurice Garcia

Metadata

Release files for pypnm-docsis-cmts 0.3.14.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypnm-docsis-cmts 0.3.14.0
File Size Uploaded
pypnm_docsis_cmts-0.3.14.0.tar.gz 351.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypnm-docsis-cmts 0.3.14.0
File Interpreter ABI Platform
pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl Python 3 none any Details

Total release size: 743.3 kB

Release files / pypnm_docsis_cmts-0.3.14.0.tar.gz

Download URL pypnm_docsis_cmts-0.3.14.0.tar.gz
Size 351.5 kB
Tags Source
SHA-256 checksum
How to use checksums
56a0fe6fa7162ce45cdbba4f614da980d0ce5245e0fa787e11dbe0ae7c57354a
BLAKE2b-256 checksum
How to use checksums
3fc70f0d2bb253135dabca4eeace75a8c0a05de6d0d9108c304e9d22230fb749
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl

Download URL pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl
Size 391.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f96d1a4fe7fd366b6f3fcc01f573139d00aae0a1a1bba4e0f9fef1373b6ed32b
BLAKE2b-256 checksum
How to use checksums
3e9a5ee10a46c0c354fc8852c5bba6e975318ce85fa8988d1173d60fbf67affa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page