-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent Enum Crashes #203
Prevent Enum Crashes #203
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All I hear is "pydantic sucks" and I agree
According to the docs, printing the error should also include the That said, if the enum is not complete then it will result in failures, so falling back to a string seems reasonable for these situations. |
genshin.py uses pydantic v1 |
* Support Imaginarium Theater (#198) * Add models and method * Add test * Continue to use Aliased field cuz it magically works again * Add medal_num field Co-authored-by: omg-xtao <100690902+omg-xtao@users.noreply.github.com> * Rename is_enhanced field * Improve implementation * Add need_detail param --------- Co-authored-by: omg-xtao <100690902+omg-xtao@users.noreply.github.com> * Add Partial ZZZ Support (#200) * Add zzz code redeem route * Modify game check logic * Add zzz server recognition function * Add daily reward URLs * Remove unreachable code * Add real-time notes support * Apply reformat and export models to dunder all * Add fetching user stats * Fix code redemption not working * Sort dunder all * Add buddy_list * Return Game.ZZZ for GenshinAccount.game * Prevent enum crashes (#203) * Add Support for Passing in More Device Info (#202) * Update game auth headers with client custom headers * Add device_id and device_fp setter * Allow passing in custom payload * Allow passing in custom device_name, device_model, and client_type * Refactor * Use GameRoute for battle chronicle route * Fix honkai -> honkai3rd * Forgot to add kwargs to overload * Export ImgTheaterData to dunder all * Add unknown img theater difficulty * Use game-specific game_biz header for game auth * Handle special card wapi endpoints * feat: Add ZZZ gacha support + fix for Chronicled Banner (#206) * Add More ZZZ Features (#207) * Fix get_zz_user method doctsring * Add 2 new icon props and rename 1 icon prop * Add get_zzz_characters method * Add get_bangboos method * Add full agent info * Run nox * Clarify docstrings and add list conversion * Rename methods for better consistency * Add icon field to WEngine Co-authored-by: omg-xtao <100690902+omg-xtao@users.noreply.github.com> * Rename star field to refinement * Fix requesting the wrong endpoint --------- Co-authored-by: omg-xtao <100690902+omg-xtao@users.noreply.github.com> * Add property type * Fix lang arg has no effect on ZZZ endpoitns * Add missing disc prop types * Merge DISC_IMPACT and ENGINE_IMPACT * Add full_name field to ZZZBaseAgent * Fix typo speciality -> specialty * Fix stuff related to AgentSkill * Add game_name and game_logo fields to RecordCard * Add ZZZRecordCard * Support TOT daily reward claiming * Fix Game.TOT not being recognized * Change Game.TOT enum value to 'tot' * Implement recognize_region for Game.TOT * Add banner_art prop to BattleSuit model * Support recognizing game_biz for Game.TOT * Support TOT code redemption * Add caching to get_server_region method * Add region param to redeem_code method * Add boss kills and sub-area explorations to the Exploration model and Long-Term Encounter points (#209) * Add boss kills and sub-area explorations to Exploration * Add stored encounter points and refresh countdown * Ran nox reformatting * Change returning None to returning an empty list * Remove validators as they are no longer required * Add "explored" property to AreaExploration * Support ZZZ Shiyu defense * Fix dunder all not formatted * Remove wiki tests * Remove model reserialization test * Fix raising error for no game even the request doesnt need it * Fix calcualtor test not passing * Update fixture genshin UID and hoyolab ID * Remove unused import * Add type ignore for challenge_time field * Fix type error * Fix invalid import of ModelField * Fix type error * Fix missing type annotation on headers attr * Fix invalid attr access * Update user nickname accordingly * Remove event_loop fixture * Fix test failing caused by get_gacha_items --------- Co-authored-by: omg-xtao <100690902+omg-xtao@users.noreply.github.com> Co-authored-by: Furia <83609040+FuriaPaladins@users.noreply.github.com>
Enums are cool, but not cool when it crashes your bot with a
ValidationError
.I've been bothered by specifically these two enums and today I have decided to "fix" them once and for all.
These two enums always come up with some unexpected value that even myself is not able to get, since for some reason, Pydantic doesn't tell the value that didn't match the enum. When I tried to manually call
get_genshin_notes
with the account that had the error, everything is suddenly working again, so I'm guessing it's because the status changed.