Add your description here
Project description
Python NSO Library
Thin wrapper around RestConf designed to interact with NSO.
Key Features:
- Detect errors raising meaningful exceptions
- Parameter support in URL to avoid URL Encoding mistakes
- Support for generating and executing YANG Patches
- Handling of dry-run responses
Usage
Installing
uv add python-nso-client
Writing code with nso_client
from nso_client import NSOClient
from httpx import BasicAuth
nso = NSOClient(
"https://localhost",
auth=BasicAuth("acct", "secret")
)
# Fetching data
resp = nso.get("/tailf-ncs:services/bb:backbone", content="config")
for bb in resp["bb:backbone"]:
print(bb)
# Create objects
resp = nso.put(
"/tailf-ncs:services/bb:backbone={}",
"my-bb-1",
payload={
"bb:backbone": [
{
"name": "my-bb-1",
"links": [
{"device": "xr0", "interface": "TenGigE0/0/0"},
{"device": "xr1", "interface": "TenGigE0/0/1"},
],
"metric": 500,
"admin-state": "in-service",
}
]
},
)
# Using yang-patch to modify multiple areas in the same transaction
patch = nso.yang_patch("/tailf-ncs:services")
patch.merge("/bb:backbone={}", "my-bb-1", value=...)
patch.merge("/bb:backbone={}", "my-bb-2", value=...)
patch.delete("/bb:backbone={}", "my-bb-3")
resp = patch.commit(dry_run="cli")
print(resp.changes)
patch.commit()
# Error handling
try:
nso.delete("/tailf-ncs:services/bb:backbone={}", "does-not-exist")
except NotFoundError as exc:
print("Backbone already deleted", exc)
# Fetching results in a None, not an exception
resp = nso.get("/tailf-ncs:services/bb:backbone={}", "does-not-exist")
assert resp is None
Developing
# Build
uv build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_nso_client-0.0.3.tar.gz
(27.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_nso_client-0.0.3.tar.gz.
File metadata
- Download URL: python_nso_client-0.0.3.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10328fd0be9449a1e8ac484476e4c80ec196b48e4f94564fa05501dc73f8025e
|
|
| MD5 |
783cfe7812b62df4dc4a8de599255046
|
|
| BLAKE2b-256 |
ff89e0d977ef6bcf5ab08637990e45feff9fe923b623f80a19f80e0dc9e98c4d
|
File details
Details for the file python_nso_client-0.0.3-py3-none-any.whl.
File metadata
- Download URL: python_nso_client-0.0.3-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1664465c97fc75938a44d003a9c8eaced2a511780c6bf28747ecf5d913c80a8c
|
|
| MD5 |
d00be81831e469abd4fec0f8670f355b
|
|
| BLAKE2b-256 |
a77124c74986b2b4b6dec55a45816520965baa3a7fb45e92b6c4e3fe400b9f0d
|