wingpy


Namewingpy JSON
Version 1.2.0 PyPI version JSON
download
home_pageNone
SummaryAPI client library built for network engineers.
upload_time2025-08-11 10:39:14
maintainerNone
docs_urlNone
authorWingmen Solutions ApS, Andreas Baekdahl, Emil Bisgaard Commerou
requires_python<3.14,>=3.10
licenseNone
keywords aci apic cisco devnet fmc firepower hyperfabric network automation rest rest api restapi restful api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Wingpy: Cisco APIs for humans

__wingpy__ is an elegant and simple Cisco API library for Python, built for network engineers by [Wingmen Solutions](https://www.wingmen.dk/en/home-page/).

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](https://wingpy.automation.wingmen.dk/user-guide)

## Features

- Session maintenance
- Rate limit handling
- Authentication
- Path building
- Concurrency
- Fully typed
- Pagination
- Headers

## Installation

**Install via uv**
```bash
uv add wingpy
```

**Install via pip**
```bash
pip install wingpy
```

**Install via poetry**
```bash
poetry add wingpy
```

## Supported APIs

- Cisco APIC (Application Centri Infrastructure / ACI)
  
  ```python
  from wingpy import CiscoAPIC
  ```

- Cisco Catalyst Center
  
  ```python
  from wingpy import CiscoCatalystCenter
  ```

- Cisco FMC (Secure Firewall Management Center)
  
  ```python
  from wingpy import CiscoFMC
  ```

- Cisco Hyperfabric
  
  ```python
  from wingpy import CiscoHyperfabric
  ```

- Cisco ISE (Identity Service Engine)
  
  ```python
  from wingpy import CiscoISE
  ```

- Cisco Meraki Dashboard
  
  ```python
  from wingpy import CiscoMerakiDashboard
  ```

## 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](https://wingpy.automation.wingmen.dk/user-guide)

## Usage

Import the class matching the API you want to use. See full list in the [User Guide, API section](https://wingpy.automation.wingmen.dk/api/)

**Connect to an API**

Parameters can be specified as environment variables or with static values. It is your responsibility to keep your secrets safe!

```python
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.

```python
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](https://wingpy.automation.wingmen.dk/faq/) or search the [documentation](https://wingpy.automation.wingmen.dk)

To report bugs or request features, please open a GitHub issue.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "wingpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": null,
    "keywords": "ACI, APIC, Cisco, DevNet, FMC, Firepower, Hyperfabric, Network Automation, REST, REST API, RESTAPI, RESTful API",
    "author": "Wingmen Solutions ApS, Andreas Baekdahl, Emil Bisgaard Commerou",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/23/17/9acb3444561e1193ad6bd5699e5ba39461a79156ac6e65aaf97580cfa5fb/wingpy-1.2.0.tar.gz",
    "platform": null,
    "description": "# Wingpy: Cisco APIs for humans\n\n__wingpy__ is an elegant and simple Cisco API library for Python, built for network engineers by [Wingmen Solutions](https://www.wingmen.dk/en/home-page/).\n\nAll 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.\n\nAlthough 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.\n\nPlenty of examples and explanations are available in the [User Guide](https://wingpy.automation.wingmen.dk/user-guide)\n\n## Features\n\n- Session maintenance\n- Rate limit handling\n- Authentication\n- Path building\n- Concurrency\n- Fully typed\n- Pagination\n- Headers\n\n## Installation\n\n**Install via uv**\n```bash\nuv add wingpy\n```\n\n**Install via pip**\n```bash\npip install wingpy\n```\n\n**Install via poetry**\n```bash\npoetry add wingpy\n```\n\n## Supported APIs\n\n- Cisco APIC (Application Centri Infrastructure / ACI)\n  \n  ```python\n  from wingpy import CiscoAPIC\n  ```\n\n- Cisco Catalyst Center\n  \n  ```python\n  from wingpy import CiscoCatalystCenter\n  ```\n\n- Cisco FMC (Secure Firewall Management Center)\n  \n  ```python\n  from wingpy import CiscoFMC\n  ```\n\n- Cisco Hyperfabric\n  \n  ```python\n  from wingpy import CiscoHyperfabric\n  ```\n\n- Cisco ISE (Identity Service Engine)\n  \n  ```python\n  from wingpy import CiscoISE\n  ```\n\n- Cisco Meraki Dashboard\n  \n  ```python\n  from wingpy import CiscoMerakiDashboard\n  ```\n\n## Configuration\n\nThe recommended way to specify API authentication parameters is through environment variables:\n\n- `WINGPY_*_BASE_URL`\n- `WINGPY_*_USERNAME`\n- `WINGPY_*_PASSWORD`\n- `WINGPY_*_TOKEN`\n\nSee more in the [User Guide](https://wingpy.automation.wingmen.dk/user-guide)\n\n## Usage\n\nImport the class matching the API you want to use. See full list in the [User Guide, API section](https://wingpy.automation.wingmen.dk/api/)\n\n**Connect to an API**\n\nParameters can be specified as environment variables or with static values. It is your responsibility to keep your secrets safe!\n\n```python\nfrom wingpy import CiscoFMC\nfmc = CiscoFMC(base_url=\"https://1.2.3.4\", username=\"admin\", password=\"passw0rd\")\n```\n\n**Retrieve all items from a paginated API endpoint**\n\nPages are retrieved in parallel for max. performance.\n\n```python\nnetworks = fmc.get_all(\"/api/fmc_config/v1/domain/{domainUUID}/object/hosts\")\n# Domain UUID is automatically substituted.\n# Authentication is done automatically when needed.\n# Paginated results are automatically fetched and combined.\nfor network in networks:\n    print(network[\"name\"])\n```\n\n## Getting help\n\nCheck the [FAQ](https://wingpy.automation.wingmen.dk/faq/) or search the [documentation](https://wingpy.automation.wingmen.dk)\n\nTo report bugs or request features, please open a GitHub issue.",
    "bugtrack_url": null,
    "license": null,
    "summary": "API client library built for network engineers.",
    "version": "1.2.0",
    "project_urls": {
        "Documentation": "https://wingpy.automation.wingmen.dk",
        "Homepage": "https://www.wingmen.dk/en/home-page/",
        "Issues": "https://github.com/wingmendk/wingpy/issues",
        "Repository": "https://github.com/wingmendk/wingpy"
    },
    "split_keywords": [
        "aci",
        " apic",
        " cisco",
        " devnet",
        " fmc",
        " firepower",
        " hyperfabric",
        " network automation",
        " rest",
        " rest api",
        " restapi",
        " restful api"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ab8fbe2fa09aa4ff4716f023464bd3b21d313287a3ee44353b8bec67e0eef1a6",
                "md5": "aaaf40c504fa3d7017c91cb8020a1cfd",
                "sha256": "2eccb6adb6114d8db744e90ad735530255f3820afb223a894581266de1d605ae"
            },
            "downloads": -1,
            "filename": "wingpy-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aaaf40c504fa3d7017c91cb8020a1cfd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 56593,
            "upload_time": "2025-08-11T10:39:13",
            "upload_time_iso_8601": "2025-08-11T10:39:13.320124Z",
            "url": "https://files.pythonhosted.org/packages/ab/8f/be2fa09aa4ff4716f023464bd3b21d313287a3ee44353b8bec67e0eef1a6/wingpy-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23179acb3444561e1193ad6bd5699e5ba39461a79156ac6e65aaf97580cfa5fb",
                "md5": "7165df0cb105dba503b32e41e4331a1e",
                "sha256": "d6c60e653c41614bca43d88a8867e058299e156868b4e9e4c2eb2ca50b6ad070"
            },
            "downloads": -1,
            "filename": "wingpy-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7165df0cb105dba503b32e41e4331a1e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 44751,
            "upload_time": "2025-08-11T10:39:14",
            "upload_time_iso_8601": "2025-08-11T10:39:14.458880Z",
            "url": "https://files.pythonhosted.org/packages/23/17/9acb3444561e1193ad6bd5699e5ba39461a79156ac6e65aaf97580cfa5fb/wingpy-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-11 10:39:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wingmendk",
    "github_project": "wingpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "wingpy"
}
        
Elapsed time: 0.73169s