How seriaati/genshin.py works
genshin.py is an asyncio and Pydantic wrapper for HoYoLAB and game APIs. A caller creates a Client, optionally authenticates or supplies cookies, then invokes a domain method; the client makes routed requests and returns parsed models. The graph preserves the documented multi-game chronicle, HoYoLAB, calculator, and other endpoint families. Several component implementations are unsampled, so their internal call paths are omitted; edges rely on README statements or relationships visible in the supplied excerpts and source index.
Main entry points: clients.py Client facade · base.py Request client · client.py Auth workflows · genshin.py Game chronicles
Components 22
Client runtime
- Client facade
genshin/client/clients.py - Request client
genshin/client/components/base.py - Response cache
genshin/client/cache.py - Cookie managers
genshin/client/manager/managers.py - API routes
genshin/client/routes.py - API pagination
genshin/paginators/api.py
Authentication
- Auth workflows
genshin/client/components/auth/client.py - App login
genshin/client/components/auth/subclients/app.py - Captcha server
genshin/client/components/auth/server.py - Auth utilities
genshin/utility/auth.py
API capabilities
- HoYoLAB APIs
genshin/client/components/hoyolab.py - Game chronicles
genshin/client/components/chronicle/genshin.py - Chronicle base
genshin/client/components/chronicle/base.py - Daily rewards
genshin/client/components/daily.py - Spending diary
genshin/client/components/diary.py - Gacha records
genshin/client/components/gacha.py - Enhancement calculator
genshin/client/components/calculator/client.py
Response models
- Game and account models
genshin/models - Pydantic model base
genshin/models/model.py
Other components
- Library caller
- HoYoLAB API
- Game APIs
Connections 26
- Library caller → Client facade: creates and calls
- Client facade → HoYoLAB APIs: exposes
genshin/client/clients.py - Client facade → Game chronicles: exposes
genshin/client/clients.py - Client facade → Daily rewards: exposes
genshin/client/clients.py - Client facade → Spending diary: exposes
genshin/client/clients.py - Client facade → Gacha records: exposes
genshin/client/clients.py - Client facade → Enhancement calculator: exposes
genshin/client/clients.py - Client facade → Auth workflows: exposes
genshin/client/clients.py - Request client → Response cache: reads and writes
genshin/client/components/base.py - Request client → API routes: uses endpoints
genshin/client/components/base.py - Request client → Cookie managers: uses cookies
genshin/client/components/base.py - Cookie managers → HoYoLAB API: sends requests
genshin/client/manager/managers.py - API routes → HoYoLAB API: defines endpoints
genshin/client/routes.py - API routes → Game APIs: defines endpoints
genshin/client/routes.py - HoYoLAB APIs → Request client: uses request client
genshin/client/components/hoyolab.py - Game chronicles → Chronicle base: inherits from
genshin/client/components/chronicle/genshin.py - Game chronicles → Game and account models: builds responses
genshin/client/components/chronicle/genshin.py - Game chronicles → API pagination: uses pagination
genshin/client/components/chronicle/genshin.py - Enhancement calculator → Request client: uses request client
genshin/client/components/calculator/client.py - Enhancement calculator → Game and account models: builds responses
genshin/client/components/calculator/client.py - Auth workflows → App login: dispatches login
genshin/client/components/auth/client.py - Auth workflows → Captcha server: solves challenges
genshin/client/components/auth/client.py - Auth workflows → Cookie managers: uses cookie manager
genshin/client/components/auth/client.py - App login → Cookie managers: sends login requests
genshin/client/components/auth/subclients/app.py - App login → Auth utilities: signs requests
genshin/client/components/auth/subclients/app.py - Game and account models → Pydantic model base: uses base model
genshin/models/genshin/calculator.py