Skip to content

V3.0#20

Merged
ZEDGR merged 20 commits into
masterfrom
v3.0
Jun 2, 2026
Merged

V3.0#20
ZEDGR merged 20 commits into
masterfrom
v3.0

Conversation

@ZEDGR

@ZEDGR ZEDGR commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Breaking Changes

  • Replace module-level functions with a Client / AsyncClient class — all calls now go through an instance (client.tournaments.show(...) instead of challonge.tournaments.show(...))
  • API responses are now typed dataclasses (Tournament, Participant, Match, MatchAttachment) instead of plain dicts — use attribute access (t.name) instead of key access (t["name"])
  • set_credentials(), set_timezone(), and other module-level state helpers removed — pass user, api_key, and timezone to the Client constructor instead
  • fetch() / fetch_and_parse() are no longer public

New Features

  • AsyncClient with full async/await support via httpx.AsyncClient — all domain methods are awaitable
  • Context manager support: with Client(...) as client and async with AsyncClient(...) as client
  • timezone parameter on Client / AsyncClient accepts IANA timezone strings (e.g. "Asia/Seoul")
  • New models.py module with Tournament, Participant, Match, and MatchAttachment dataclasses

Improvements

  • Switch from unittest to pytest
  • Add async smoke tests covering all four resource domains

@ZEDGR
ZEDGR merged commit a5316bc into master Jun 2, 2026
6 checks passed
@ZEDGR
ZEDGR deleted the v3.0 branch June 11, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant