PyPNM-CMTS - CMTS Operations Toolkit for PyPNM (Under Development)
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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pypnm_docsis_cmts-0.3.14.0.tar.gz | 351.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|