Skip to main content

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 worry 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 Centric 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
    
  • Cisco Nexus Dashboard

    from wingpy import CiscoNexusDashboard
    

Configuration

The recommended way to specify API authentication parameters is through environment variables:

  • WINGPY_*_BASE_URL
  • WINGPY_*_USERNAME
  • WINGPY_*_PASSWORD
  • WINGPY_*_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 maximum 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

wingpy-1.6.1.tar.gz (7.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wingpy-1.6.1-py3-none-any.whl (95.0 kB view details)

Uploaded Python 3

File details

Details for the file wingpy-1.6.1.tar.gz.

File metadata

  • Download URL: wingpy-1.6.1.tar.gz
  • Upload date:
  • Size: 7.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for wingpy-1.6.1.tar.gz
Algorithm Hash digest
SHA256 c2063e4ef1345315a8f14942044f39c894f8af6cbcaebfb3a676402243572942
MD5 fda619a2af1e5f6a1521828326d6634b
BLAKE2b-256 23494bfa1b8e5fd25c2d56f36169f691035d3a995a71d5dd7b429c9b4960b0dc

See more details on using hashes here.

File details

Details for the file wingpy-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: wingpy-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for wingpy-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b62c05ee1982a6474ee220044af55d18f74dadc74d78e8ca131d89cdfbe1ed16
MD5 9fc7c4a5c2c22e182a7f9a6f0196f52b
BLAKE2b-256 3b2f6c276836dd704de501ce8f551187b27c1fd96e1ecfa0c5954b981dc2de7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page