Releases: meraki/dashboard-api-python
4.1.0b3
What's Changed
- chore(deps-dev): bump ruff from 0.15.12 to 0.15.14 by @dependabot[bot] in #369
- chore(deps-dev): bump hypothesis from 6.152.4 to 6.152.9 by @dependabot[bot] in #365
- chore(deps-dev): bump hypothesis from 6.152.9 to 6.152.10 in the all-deps group by @dependabot[bot] in #371
- chore(deps-dev): bump the all-deps group with 2 updates by @dependabot[bot] in #376
- chore(deps-dev): bump hypothesis from 6.153.0 to 6.153.6 in the all-deps group by @dependabot[bot] in #379
- Release v4.1.0b3 (API v1.70.0-beta.3) by @meraki-release-bot[bot] in #380
Full Changelog: 4.1.0b2...4.1.0b3
3.1.0b3
What's Changed
- chore(deps-dev): bump ruff from 0.15.12 to 0.15.14 by @dependabot[bot] in #370
- chore(deps-dev): bump responses from 0.26.0 to 0.26.1 by @dependabot[bot] in #368
- chore(deps): bump requests from 2.33.1 to 2.34.2 by @dependabot[bot] in #366
- Remove v3 drift detection by @TKIPisalegacycipher in #373
- chore(deps-dev): bump pytest-asyncio from 1.3.0 to 1.4.0 in the all-deps group by @dependabot[bot] in #375
- Release v3.1.0b3 (API v1.70.0-beta.3) by @meraki-release-bot[bot] in #377
Full Changelog: 3.1.0b2...3.1.0b3
4.1.0b2
What's Changed
- Release v4.1.0b2 (API v1.70.0-beta.2) by @meraki-release-bot[bot] in #362
Full Changelog: 4.1.0b1...4.1.0b2
3.1.0b2
What's Changed
- Release v3.1.0b2 (API v1.70.0-beta.2) by @meraki-release-bot[bot] in #363
Full Changelog: 3.1.0b1...3.1.0b2
4.1.0b1
What's Changed
- Release v4.1.0b0 (API v1.70.0-beta.0) by @meraki-release-bot[bot] in #348
- Release v4.1.0b1 (API v1.70.0-beta.1) by @meraki-release-bot[bot] in #354
Full Changelog: 4.0.0b1...4.1.0b1
3.1.0b1
What's Changed
- Release v3.1.0b1 (API v1.70.0-beta.1) by @meraki-release-bot[bot] in #356
Full Changelog: 3.1.0b0...3.1.0b1
4.0.0b1
Hello, httpx!
This release is the first pre-release version of the library that has been refactored to use httpx instead of requests and aiohttp.
Summary
This migration offers us a number of meaningful benefits:
- One library, one codebase - eliminates ~80% duplicated logic between sync (rest_session.py, 670 lines) and async (aio/rest_session.py, 547 lines)
- Fixes real bugs - bare except Exception in async, inconsistent error handling, blocking time.sleep() in the async event loop
- Drops two pinned deps (requests<3, aiohttp<4) for one (httpx)
- Identical sync/async API - httpx.Client and httpx.AsyncClient share the same surface, so shared base class becomes trivial
- Type-annotated from the start - natural opportunity to add typing to core modules
- Simpler async - response body is buffered after await, so .json() is sync even on the async client; eliminates all async with await patterns
Decision logic (retry, backoff, error classification) lives in a single base class, and sync/async layers are thin I/O shells differing only in sleep vs await asyncio.sleep.
Breaking changes
For normal SDK users, these changes are invisible. Most scripts will "just work" without updates. The SDK's public API (DashboardAPI, AsyncDashboardAPI, all endpoint methods) is unchanged.
The actual breaks live in import paths, exception internals, and the HTTP dependency swap.
Dependencies
requests+aiohttpreplaced byhttpx>=0.28,<1: Anyone pinning or importing these transitively loses them.responses(test library) replaced byrespx: Only affects contributors running the test suite.
Module structure
meraki/rest_session.pydeleted:from meraki.rest_session import RestSessionbreaksmeraki/aio/rest_session.pydeleted:from meraki.aio.rest_session import AsyncRestSessionbreaks- New location:
meraki/session/sync.py,meraki/session/async_.py: If you need to, usefrom meraki.session import RestSession, AsyncRestSession(most users will not need this) - New shared base:
meraki/session/base.py: Internal; not part of the SDK's public API - New encoding module:
meraki/encoding.py: Internal; replaces the old monkey-patch
Exceptions
AsyncAPIErroris now a deprecated subclass of APIError:except AsyncAPIErrorstill catches, but emitsDeprecationWarning. Useexcept APIErrorfor both sync and async going forward..reasonattribute preserved on exception objects: Still works; internally, now reads fromresponse.reason_phrase.
Internals (private SDK API)
_req_sessionattribute removed; there is no compatibility shim.- Monkey-patch of
requests.models.RequestEncodingMixin._encode_paramsremoved; anyone relying on this SDK side-effecting therequestsmodule loses it. response.status(fromaiohttp) is nowresponse.status_code(httpx); only visible if you accessed raw response objects from session internals.
More info, why, etc.
For more information, please consult HTTPX-MIGRATION.md.
Full Changelog: 3.0.2...4.0.0b1
3.1.0
3.1.0b0
What's Changed
- Release v3.1.0b0 (API v1.70.0-beta.0) by @meraki-release-bot[bot] in #345
Full Changelog: 3.1.0...3.1.0b0
3.0.2
Patchfix for #335.
What's Changed
- Auto-generated library v3.0.2 for API v1.69.0. by @TKIPisalegacycipher in #336
Full Changelog: 3.0.1...3.0.2