Skip to content

Releases: meraki/dashboard-api-python

4.1.0b3

27 May 23:04
dfb2bf8

Choose a tag to compare

4.1.0b3 Pre-release
Pre-release

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

27 May 18:05
25cbda3

Choose a tag to compare

3.1.0b3 Pre-release
Pre-release

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

20 May 15:21
fb1944f

Choose a tag to compare

4.1.0b2 Pre-release
Pre-release

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

20 May 15:21
7703108

Choose a tag to compare

3.1.0b2 Pre-release
Pre-release

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

14 May 00:55
5c774b5

Choose a tag to compare

4.1.0b1 Pre-release
Pre-release

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

14 May 01:28
2695214

Choose a tag to compare

3.1.0b1 Pre-release
Pre-release

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

06 May 03:43
904f954

Choose a tag to compare

4.0.0b1 Pre-release
Pre-release

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:

  1. One library, one codebase - eliminates ~80% duplicated logic between sync (rest_session.py, 670 lines) and async (aio/rest_session.py, 547 lines)
  2. Fixes real bugs - bare except Exception in async, inconsistent error handling, blocking time.sleep() in the async event loop
  3. Drops two pinned deps (requests<3, aiohttp<4) for one (httpx)
  4. Identical sync/async API - httpx.Client and httpx.AsyncClient share the same surface, so shared base class becomes trivial
  5. Type-annotated from the start - natural opportunity to add typing to core modules
  6. 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 + aiohttp replaced by httpx>=0.28,<1: Anyone pinning or importing these transitively loses them.
  • responses (test library) replaced by respx: Only affects contributors running the test suite.

Module structure

  • meraki/rest_session.py deleted: from meraki.rest_session import RestSession breaks
  • meraki/aio/rest_session.py deleted: from meraki.aio.rest_session import AsyncRestSession breaks
  • New location: meraki/session/sync.py, meraki/session/async_.py: If you need to, use from 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

  • AsyncAPIError is now a deprecated subclass of APIError: except AsyncAPIError still catches, but emits DeprecationWarning. Use except APIError for both sync and async going forward.
  • .reason attribute preserved on exception objects: Still works; internally, now reads from response.reason_phrase.

Internals (private SDK API)

  • _req_session attribute removed; there is no compatibility shim.
  • Monkey-patch of requests.models.RequestEncodingMixin._encode_params removed; anyone relying on this SDK side-effecting the requests module loses it.
  • response.status (from aiohttp) is now response.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

06 May 20:56
c266bdd

Choose a tag to compare

What's Changed

  • Release v3.1.0 (API v1.70.0) by @meraki-release-bot[bot] in #341

New Contributors

  • @meraki-release-bot[bot] made their first contribution in #341

Full Changelog: 3.0.2...3.1.0

3.1.0b0

06 May 23:33
2828696

Choose a tag to compare

3.1.0b0 Pre-release
Pre-release

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

06 May 01:35
0628b49

Choose a tag to compare

Patchfix for #335.

What's Changed

Full Changelog: 3.0.1...3.0.2