Module genshin.models.zzz.upgrade_guide

ZZZ agent upgrade guide models.

Classes

class DiscLevelCap (**data: Any)
Expand source code
class DiscLevelCap(APIModel):
    """Max disc level per rarity."""

    b: int
    a: int
    s: int

Max disc level per rarity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var a : int
var b : int
var model_config : pydantic.config.ConfigDict
var s : int
class LevelCapInfo (**data: Any)
Expand source code
class LevelCapInfo(APIModel):
    """Level caps for the current (or next) game version."""

    avatar_level_max: int
    weapon_level_max: int
    equip_level_max: DiscLevelCap
    skill_core_level_max: int
    skill_normal_level_max: typing.Sequence[SkillLevelCap]

Level caps for the current (or next) game version.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var avatar_level_max : int
var equip_level_max : DiscLevelCap
var model_config : pydantic.config.ConfigDict
var skill_core_level_max : int
var skill_normal_level_max : Sequence[SkillLevelCap]
var weapon_level_max : int
class PlanUnlockInfo (**data: Any)
Expand source code
class PlanUnlockInfo(APIModel):
    """Which agents, bangboos, and W-engines referenced by a build the user owns."""

    avatars: typing.Mapping[int, bool] = Aliased("avatar")
    buddies: typing.Mapping[int, bool] = Aliased("buddy")
    weapons: typing.Mapping[int, bool] = Aliased("weapon")

Which agents, bangboos, and W-engines referenced by a build the user owns.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var avatars : Mapping[int, bool]
var buddies : Mapping[int, bool]
var model_config : pydantic.config.ConfigDict
var weapons : Mapping[int, bool]
class RecommendedBuddy (**data: Any)
Expand source code
class RecommendedBuddy(APIModel, Unique):
    """A recommended bangboo in a team comp."""

    id: int
    name: str
    rarity: str

A recommended bangboo in a team comp.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var id : int
var model_config : pydantic.config.ConfigDict
var name : str
var rarity : str
class RecommendedBuild (**data: Any)
Expand source code
class RecommendedBuild(APIModel, Unique):
    """A recommended build for an agent."""

    id: int
    name: str
    description: str = Aliased("desc")
    released_at: UnixDateTime
    detail: typing.Optional[RecommendedBuildDetail] = Aliased("item", default=None)

A recommended build for an agent.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var description : str
var detail : RecommendedBuildDetail | None
var id : int
var model_config : pydantic.config.ConfigDict
var name : str
var released_at : datetime.datetime
class RecommendedBuildDetail (**data: Any)
Expand source code
class RecommendedBuildDetail(APIModel):
    """The contents of a recommended build."""

    target_stats: typing.Sequence[RecommendedStat] = Aliased("avatar")
    weapon: RecommendedWeapon
    discs: RecommendedDiscs = Aliased("equip")
    skills: typing.Sequence[UpgradeGuideAgentSkill] = Aliased("skill")
    team: RecommendedTeam
    avatar_wiki: typing.Sequence[WikiEntry]
    bangboo_wiki: typing.Sequence[WikiEntry]
    unlock_info: PlanUnlockInfo
    unlocked_talents: typing.Sequence[int]

The contents of a recommended build.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var avatar_wiki : Sequence[WikiEntry]
var bangboo_wiki : Sequence[WikiEntry]
var discs : RecommendedDiscs
var model_config : pydantic.config.ConfigDict
var skills : Sequence[UpgradeGuideAgentSkill]
var target_stats : Sequence[RecommendedStat]
var team : RecommendedTeam
var unlock_info : PlanUnlockInfo
var unlocked_talents : Sequence[int]
var weapon : RecommendedWeapon
class RecommendedDiscProperty (**data: Any)
Expand source code
class RecommendedDiscProperty(APIModel):
    """A recommended disc main or sub stat."""

    name: str = Aliased("property_name")
    type: typing.Union[int, ZZZPropertyType] = Aliased("property_id")
    system_id: int

    @pydantic.field_validator("type", mode="before")
    def __cast_id(cls, v: int) -> typing.Union[int, ZZZPropertyType]:
        return prevent_enum_error(v, ZZZPropertyType)

A recommended disc main or sub stat.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var model_config : pydantic.config.ConfigDict
var name : str
var system_id : int
var type : int | ZZZPropertyType
class RecommendedDiscs (**data: Any)
Expand source code
class RecommendedDiscs(APIModel):
    """The recommended discs for a build."""

    sets: typing.Sequence[UpgradeGuideDiscSetEffect] = Aliased("equip")
    set_kind: int = Aliased("equip_suit_kind")
    slot_4_main_stats: typing.Sequence[RecommendedDiscProperty] = Aliased("main_properties_4")
    slot_5_main_stats: typing.Sequence[RecommendedDiscProperty] = Aliased("main_properties_5")
    slot_6_main_stats: typing.Sequence[RecommendedDiscProperty] = Aliased("main_properties_6")
    sub_stats: typing.Sequence[RecommendedDiscProperty] = Aliased("sub_properties")

The recommended discs for a build.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var model_config : pydantic.config.ConfigDict
var set_kind : int
var sets : Sequence[UpgradeGuideDiscSetEffect]
var slot_4_main_stats : Sequence[RecommendedDiscProperty]
var slot_5_main_stats : Sequence[RecommendedDiscProperty]
var slot_6_main_stats : Sequence[RecommendedDiscProperty]
var sub_stats : Sequence[RecommendedDiscProperty]
class RecommendedStat (**data: Any)
Expand source code
class RecommendedStat(APIModel):
    """A target stat range in a recommended build."""

    name: str = Aliased("property_name")
    type: typing.Union[int, ZZZPropertyType] = Aliased("property_id")
    low: str
    mid: str
    high: str
    show_phase: int
    show_percent: int

    @pydantic.field_validator("type", mode="before")
    def __cast_id(cls, v: int) -> typing.Union[int, ZZZPropertyType]:
        return prevent_enum_error(v, ZZZPropertyType)

A target stat range in a recommended build.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var high : str
var low : str
var mid : str
var model_config : pydantic.config.ConfigDict
var name : str
var show_percent : int
var show_phase : int
var type : int | ZZZPropertyType
class RecommendedTeam (**data: Any)
Expand source code
class RecommendedTeam(APIModel):
    """Recommended team comps for a build."""

    main: RecommendedTeamGroup
    backup: RecommendedTeamGroup

Recommended team comps for a build.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var backup : RecommendedTeamGroup
var main : RecommendedTeamGroup
var model_config : pydantic.config.ConfigDict
class RecommendedTeamGroup (**data: Any)
Expand source code
class RecommendedTeamGroup(APIModel):
    """A recommended team (main or backup variant)."""

    agents: typing.Sequence[UpgradeGuideAgentInfo] = Aliased("avatar_list")
    buddies: typing.Sequence[RecommendedBuddy] = Aliased("buddy_list")
    ext_info: typing.Sequence[TeamAvatarExtInfo] = Aliased("team_avatar_ext_info")

A recommended team (main or backup variant).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var agents : Sequence[UpgradeGuideAgentInfo]
var buddies : Sequence[RecommendedBuddy]
var ext_info : Sequence[TeamAvatarExtInfo]
var model_config : pydantic.config.ConfigDict
class RecommendedWeapon (**data: Any)
Expand source code
class RecommendedWeapon(APIModel):
    """The recommended W-engine for a build."""

    main: typing.Optional[UpgradeGuideWEngine] = None
    backup: typing.Optional[UpgradeGuideWEngine] = None

    @pydantic.field_validator("main", "backup", mode="before")
    def __nullify_placeholder(cls, v: typing.Any) -> typing.Any:
        # The API returns an empty object (id 0) when there is no recommendation.
        if isinstance(v, typing.Mapping) and not typing.cast("typing.Mapping[str, typing.Any]", v).get("id"):
            return None
        return typing.cast("typing.Any", v)

The recommended W-engine for a build.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var backup : UpgradeGuideWEngine | None
var main : UpgradeGuideWEngine | None
var model_config : pydantic.config.ConfigDict
class SkillLevelCap (**data: Any)
Expand source code
class SkillLevelCap(APIModel):
    """Max level for a skill type."""

    type: ZZZSkillType = Aliased("skill_type")
    level: int

Max level for a skill type.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var level : int
var model_config : pydantic.config.ConfigDict
var type : ZZZSkillType
class SkillUpgradeAdvice (**data: Any)
Expand source code
class SkillUpgradeAdvice(APIModel):
    """Recommended skill upgrade priority, grouped into tiers of skill types."""

    first: typing.Sequence[int]
    second: typing.Sequence[int]
    third: typing.Sequence[int]

Recommended skill upgrade priority, grouped into tiers of skill types.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var first : Sequence[int]
var model_config : pydantic.config.ConfigDict
var second : Sequence[int]
var third : Sequence[int]
class TeamAvatarExtInfo (**data: Any)
Expand source code
class TeamAvatarExtInfo(APIModel):
    """Extra info about an agent slot in a recommended team comp."""

    backup_avatar_list: typing.Sequence[typing.Any]
    pos_type: int

Extra info about an agent slot in a recommended team comp.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var backup_avatar_list : Sequence[Any]
var model_config : pydantic.config.ConfigDict
var pos_type : int
class UpgradeGuideAgentDetail (**data: Any)
Expand source code
class UpgradeGuideAgentDetail(UpgradeGuideBaseAgent):
    """Detailed agent info (current build) in the upgrade guide tool."""

    level: int
    rank: int
    """Also known as Mindscape Cinema in-game."""
    properties: typing.Sequence[UpgradeGuideAgentProperty]
    skills: typing.Sequence[UpgradeGuideAgentSkill]
    ranks: typing.Sequence[ZZZAgentRank]
    """Also known as Mindscape Cinemas in-game."""
    signature_weapon_id: int
    skill_upgrade: SkillUpgradeAdvice
    promotes: int
    """Current ascension (promotion) level."""
    unlock: bool
    awaken_info: typing.Optional[UpgradeGuideAwakenInfo] = Aliased("skill_awaken", default=None)
    """``None`` for agents the user has not unlocked."""

Detailed agent info (current build) in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var awaken_info : UpgradeGuideAwakenInfo | None

None for agents the user has not unlocked.

var level : int
var model_config : pydantic.config.ConfigDict
var promotes : int

Current ascension (promotion) level.

var properties : Sequence[UpgradeGuideAgentProperty]
var rank : int

Also known as Mindscape Cinema in-game.

var ranks : Sequence[ZZZAgentRank]

Also known as Mindscape Cinemas in-game.

var signature_weapon_id : int
var skill_upgrade : SkillUpgradeAdvice
var skills : Sequence[UpgradeGuideAgentSkill]
var unlock : bool
class UpgradeGuideAgentInfo (**data: Any)
Expand source code
class UpgradeGuideAgentInfo(UpgradeGuideBaseAgent):
    """Brief agent info in the upgrade guide tool."""

    level: int
    rank: int
    """Also known as Mindscape Cinema in-game."""

Brief agent info in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Subclasses

Class variables

var level : int
var model_config : pydantic.config.ConfigDict
var rank : int

Also known as Mindscape Cinema in-game.

class UpgradeGuideAgentProperty (**data: Any)
Expand source code
class UpgradeGuideAgentProperty(ZZZAgentProperty):
    """An agent stat in the upgrade guide tool."""

    final_val: str
    """The final value without formatting (e.g. percentages stripped)."""

An agent stat in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var final_val : str

The final value without formatting (e.g. percentages stripped).

var model_config : pydantic.config.ConfigDict
class UpgradeGuideAgentSkill (**data: Any)
Expand source code
class UpgradeGuideAgentSkill(AgentSkill):
    """ZZZ agent skill model in the upgrade guide tool."""

    items: typing.Sequence[UpgradeGuideSkillItem]

ZZZ agent skill model in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var model_config : pydantic.config.ConfigDict

Inherited members

class UpgradeGuideAwakenInfo (**data: Any)
Expand source code
class UpgradeGuideAwakenInfo(APIModel):
    """Agent awaken (potential) system availability info."""

    has_potential: bool = Aliased("has_awaken_system")
    current_level: int = Aliased("awaken_level")
    max_level: int = Aliased("awaken_max_level")

Agent awaken (potential) system availability info.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var current_level : int
var has_potential : bool
var max_level : int
var model_config : pydantic.config.ConfigDict
class UpgradeGuideBaseAgent (**data: Any)
Expand source code
class UpgradeGuideBaseAgent(ZZZBaseAgent):
    """Base agent model returned by the upgrade guide tool."""

    square_icon: typing.Optional[str] = Aliased("role_square_url", default=None)  # type: ignore[assignment]
    sub_element: int = Aliased("sub_element_type")
    awaken_state: str

Base agent model returned by the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Subclasses

Class variables

var awaken_state : str
var model_config : pydantic.config.ConfigDict
var square_icon : str | None
var sub_element : int
class UpgradeGuideDisc (**data: Any)
Expand source code
class UpgradeGuideDisc(ZZZDisc):
    """A ZZZ disc in the upgrade guide tool."""

    properties: typing.Sequence[UpgradeGuideProperty]
    main_properties: typing.Sequence[UpgradeGuideProperty]
    set_effect: UpgradeGuideDiscSetEffect = Aliased("equip_suit")
    invalid_property_cnt: int
    all_hit: bool

A ZZZ disc in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var all_hit : bool
var invalid_property_cnt : int
var main_properties : Sequence[UpgradeGuideProperty]
var model_config : pydantic.config.ConfigDict
var properties : Sequence[UpgradeGuideProperty]
var set_effect : UpgradeGuideDiscSetEffect
class UpgradeGuideDiscSetEffect (**data: Any)
Expand source code
class UpgradeGuideDiscSetEffect(DiscSetEffect):
    """A disc set effect in the upgrade guide tool."""

    icon: str
    count: int = Aliased("cnt")
    rarity: str

A disc set effect in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var count : int
var icon : str
var model_config : pydantic.config.ConfigDict
var rarity : str
class UpgradeGuideProperty (**data: Any)
Expand source code
class UpgradeGuideProperty(ZZZProperty):
    """A disc or W-engine property with upgrade guide detail."""

    level: int
    valid: bool
    system_id: int
    add: int

A disc or W-engine property with upgrade guide detail.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var add : int
var level : int
var model_config : pydantic.config.ConfigDict
var system_id : int
var valid : bool
class UpgradeGuideSkillItem (**data: Any)
Expand source code
class UpgradeGuideSkillItem(AgentSkillItem):
    """An agent skill item in the upgrade guide tool."""

    awaken: bool

An agent skill item in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var awaken : bool
var model_config : pydantic.config.ConfigDict
class UpgradeGuideUser (**data: Any)
Expand source code
class UpgradeGuideUser(APIModel):
    """The HoYoLAB user who owns the queried account."""

    aid: str
    name: str
    avatar: str
    level: int
    jump_url: str
    uid: str

The HoYoLAB user who owns the queried account.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var aid : str
var avatar : str
var jump_url : str
var level : int
var model_config : pydantic.config.ConfigDict
var name : str
var uid : str
class UpgradeGuideWEngine (**data: Any)
Expand source code
class UpgradeGuideWEngine(WEngine):
    """A ZZZ W-engine in the upgrade guide tool."""

    refinement: int = Aliased("star")  # type: ignore[assignment]
    """Can be 0 when the W-engine is a recommendation the user does not own."""
    properties: typing.Sequence[UpgradeGuideProperty]
    main_properties: typing.Sequence[UpgradeGuideProperty]

A ZZZ W-engine in the upgrade guide tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var main_properties : Sequence[UpgradeGuideProperty]
var model_config : pydantic.config.ConfigDict
var properties : Sequence[UpgradeGuideProperty]
var refinement : int

Can be 0 when the W-engine is a recommendation the user does not own.

class WikiEntry (**data: Any)
Expand source code
class WikiEntry(APIModel, Unique):
    """A HoYoLAB wiki link."""

    id: int
    url: str

A HoYoLAB wiki link.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var id : int
var model_config : pydantic.config.ConfigDict
var url : str
class ZZZAgentUpgradeGuide (**data: Any)
Expand source code
class ZZZAgentUpgradeGuide(APIModel):
    """Detailed agent build and recommended upgrade guide."""

    avatar: UpgradeGuideAgentDetail
    discs: typing.Sequence[UpgradeGuideDisc] = Aliased("equip")
    weapon: typing.Optional[UpgradeGuideWEngine] = None
    plan: RecommendedBuild
    """The recommended build (upgrade guide)."""
    level_caps: typing.Optional[LevelCapInfo] = Aliased("item_info", default=None)
    """``None`` for agents the user has not unlocked."""
    next_level_caps: typing.Optional[LevelCapInfo] = Aliased("next_item_info", default=None)
    """``None`` for agents the user has not unlocked."""
    user: UpgradeGuideUser
    my_plan_id: str
    my_plan_list: typing.Sequence[typing.Any]
    valid_property_cnt: int
    from_my_plan: bool
    is_followed: bool
    new_feed_plan_flag: bool
    old_plan: bool
    plan_changed: bool
    plan_deleted: bool
    plan_only_special_property: bool

Detailed agent build and recommended upgrade guide.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var avatar : UpgradeGuideAgentDetail
var discs : Sequence[UpgradeGuideDisc]
var from_my_plan : bool
var is_followed : bool
var level_caps : LevelCapInfo | None

None for agents the user has not unlocked.

var model_config : pydantic.config.ConfigDict
var my_plan_id : str
var my_plan_list : Sequence[Any]
var new_feed_plan_flag : bool
var next_level_caps : LevelCapInfo | None

None for agents the user has not unlocked.

var old_plan : bool
var plan : RecommendedBuild

The recommended build (upgrade guide).

var plan_changed : bool
var plan_deleted : bool
var plan_only_special_property : bool
var user : UpgradeGuideUser
var valid_property_cnt : int
var weapon : UpgradeGuideWEngine | None
class ZZZUpgradeGuideAgent (**data: Any)
Expand source code
class ZZZUpgradeGuideAgent(UpgradeGuideAgentInfo):
    """An entry in the upgrade guide tool's agent list."""

    unlocked: bool
    is_up: bool
    """Whether the agent is currently on a rate-up banner."""
    is_teaser: bool
    """Whether the agent is unreleased (teaser/preview only)."""
    is_top: bool

    @pydantic.model_validator(mode="before")
    @classmethod
    def __unnest_avatar(cls, values: dict[str, typing.Any]) -> dict[str, typing.Any]:
        return {**values, **values.pop("avatar", {})}

An entry in the upgrade guide tool's agent list.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var is_teaser : bool

Whether the agent is unreleased (teaser/preview only).

var is_top : bool
var is_up : bool

Whether the agent is currently on a rate-up banner.

var model_config : pydantic.config.ConfigDict
var unlocked : bool

Inherited members