API client library built for network engineers.
Project description
Wingpy: Cisco APIs for humans
wingpy is an elegant and simple Cisco API library for Python, built for network engineers by Wingmen Solutions.
All Cisco APIs differ in how they handle authentication, session management, rate limiting, path construction, pagination and concurrency. With wingpy you don't need to wory about all of the complexities associated with this.
Although many Cisco platforms have dedicated SDKs, each of them is designed and maintained individually and have notable differences. With wingpy, just start coding and interact directly with API endpoints! This makes it much easier to work with new Cisco platform APIs and automate across domains.
Plenty of examples and explanations are available in the User Guide
Features
- Session maintenance
- Rate limit handling
- Authentication
- Path building
- Concurrency
- Fully typed
- Pagination
- Headers
Installation
Install via uv
uv add wingpy
Install via pip
pip install wingpy
Install via poetry
poetry add wingpy
Supported APIs
-
Cisco APIC (Application Centri Infrastructure / ACI)
from wingpy import CiscoAPIC
-
Cisco Catalyst Center
from wingpy import CiscoCatalystCenter
-
Cisco FMC (Secure Firewall Management Center)
from wingpy import CiscoFMC
-
Cisco Hyperfabric
from wingpy import CiscoHyperfabric
-
Cisco ISE (Identity Service Engine)
from wingpy import CiscoISE
-
Cisco Meraki Dashboard
from wingpy import CiscoMerakiDashboard
Configuration
The recommended way to specify API authentication parameters is through environment variables:
WINGPY_*_BASE_URLWINGPY_*_USERNAMEWINGPY_*_PASSWORDWINGPY_*_TOKEN
See more in the User Guide
Usage
Import the class matching the API you want to use. See full list in the User Guide, API section
Connect to an API
Parameters can be specified as environment variables or with static values. It is your responsibility to keep your secrets safe!
from wingpy import CiscoFMC
fmc = CiscoFMC(base_url="https://1.2.3.4", username="admin", password="passw0rd")
Retrieve all items from a paginated API endpoint
Pages are retrieved in parallel for max. performance.
networks = fmc.get_all("/api/fmc_config/v1/domain/{domainUUID}/object/hosts")
# Domain UUID is automatically substituted.
# Authentication is done automatically when needed.
# Paginated results are automatically fetched and combined.
for network in networks:
print(network["name"])
Getting help
Check the FAQ or search the documentation
To report bugs or request features, please open a GitHub issue.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 wingpy-1.2.0.tar.gz.
File metadata
- Download URL: wingpy-1.2.0.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6c60e653c41614bca43d88a8867e058299e156868b4e9e4c2eb2ca50b6ad070
|
|
| MD5 |
7165df0cb105dba503b32e41e4331a1e
|
|
| BLAKE2b-256 |
23179acb3444561e1193ad6bd5699e5ba39461a79156ac6e65aaf97580cfa5fb
|
File details
Details for the file wingpy-1.2.0-py3-none-any.whl.
File metadata
- Download URL: wingpy-1.2.0-py3-none-any.whl
- Upload date:
- Size: 56.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eccb6adb6114d8db744e90ad735530255f3820afb223a894581266de1d605ae
|
|
| MD5 |
aaaf40c504fa3d7017c91cb8020a1cfd
|
|
| BLAKE2b-256 |
ab8fbe2fa09aa4ff4716f023464bd3b21d313287a3ee44353b8bec67e0eef1a6
|