ReadyView Dashboard Python Library
The ReadyView Dashboard Python library provides all current ReadyView dashboard API calls to interface with the ReadyLinks ReadyView cloud-managed platform. ReadyView generates the library based on dashboard API's OpenAPI spec to keep it up to date with the latest API releases, and provides the full source code for the library including the tools used to generate the library. ReadyLinks welcomes constructive pull requests that maintain backwards compatibility with prior versions. The library requires Python 3.8+, receives support from the community, and you can install it via PyPI:
pip install --upgrdade readyview
Usage
- Export your Organization ID and API Key as an environment variable, for example:
export READYVIEW_DASHBOARD_ORG_ID=YOUR_ORG_ID
export READYVIEW_DASHBOARD_API_KEY=YOUR_API_KEY
- Import the library with a single line at the top of your Python script.
import readyview
- Instantiate the dashboard client.
dashboard = readyview.Dashboard()
- Start programmatically interacting with your ReadyView dashboard!
my_networks = dashboard.network.get_networks()
Errors and strict mode
By default, a call that fails returns None, so existing scripts keep working. To find out why a call failed, turn on strict mode:
import readyview
dashboard = readyview.Dashboard(raise_errors=True)
try:
config = dashboard.switch.get_switch_configurations("AA:BB:CC:DD:EE:FF")
except readyview.ReadyViewAPIError as error:
print(error)
# GET /v1/devices/AA:BB:CC:DD:EE:FF/switch failed with HTTP 504: The device did not answer within the time limit.
In strict mode, a call that fails raises readyview.ReadyViewAPIError, which has:
status_code: the HTTP status, such as 401, 404, 429 or 504. It isNonewhen no reply arrived, because the API could not be reached or did not answer in time. Those calls raise the subclassreadyview.ReadyViewConnectionError.message: why the call failed, as the API explained it.methodandpath: the call that failed, such asGETand/v1/devices/AA:BB:CC:DD:EE:FF/switch.retry_after: when the reply has aRetry-Afterheader (usually with a 429, when you are rate limited), how many seconds it asks you to wait before trying again. OtherwiseNone.
The error is built from the API's reply only. It never repeats what you sent, or the values the API rejected, since those can be passwords.
Calls that work return the same values in both modes, with two differences in strict mode: any 2xx status counts as success, and a reply that is not JSON (say, a hotel network's sign-in page) raises ReadyViewAPIError.
Logging
The library logs to the readyview logger with Python's logging module. It logs each reply at DEBUG. In the default mode, it also logs a failed call: an error status at INFO, and a request that got no reply at WARNING, which earlier versions printed. To see why calls return None without switching to strict mode:
import logging
logging.basicConfig()
logging.getLogger("readyview").setLevel(logging.INFO)
Contribute
Create a branch to add your feature/fix then submit a merge request to main for review. Be sure to follow the correct format in your commit message to trigger the pipeline to submit a new release. Example commit below.
feat: Added the ability to update switch configurations.
fix: Fixes some bug.
BREAKING CHANGE: Updated function API.
Run the tests before you submit:
pip install -e ".[test]"
pytest
Metadata
Release files for readyview 1.18.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 | |
|---|---|---|---|
| readyview-1.18.0.tar.gz | 43.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| readyview-1.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.3 kB
Release files / readyview-1.18.0.tar.gz
| Download URL | readyview-1.18.0.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aeda7f6f5deb8d6bba95aac9fbbc5ea365d969f1f0a85fb57db4f21f5efbfc96
|
|
BLAKE2b-256 checksum How to use checksums |
d6696a9b76f782171373b15c72f8e9819fb76792c27e95a2ca1e9f5c35be5902
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":true,"cpu":"x86_64","distro":{"id":"trixie","libc":{"lib":"glibc","version":"2.41"},"name":"Debian GNU/Linux","version":"13"},"implementation":{"name":"CPython","version":"3.11.17"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.11.17","system":{"name":"Linux","release":"5.15.154+"}} HTTPX2/2.13.1
|
Release files / readyview-1.18.0-py3-none-any.whl
| Download URL | readyview-1.18.0-py3-none-any.whl |
|---|---|
| Size | 25.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e5b56f646e34a9e9da7a6b389100fb5dfe2e020aeea23b33862aba933d5188b
|
|
BLAKE2b-256 checksum How to use checksums |
7aba6033f657bdee39c37a4920f62e7086cc06088a795ac028db29c9b7bc393a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":true,"cpu":"x86_64","distro":{"id":"trixie","libc":{"lib":"glibc","version":"2.41"},"name":"Debian GNU/Linux","version":"13"},"implementation":{"name":"CPython","version":"3.11.17"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.11.17","system":{"name":"Linux","release":"5.15.154+"}} HTTPX2/2.13.1
|