Module genshin.models.starrail.character
Starrail base character model.
Classes
class BaseMemoSprite (**data: Any)-
Expand source code
class BaseMemoSprite(APIModel): """HSR base memosprite.""" id: int = Aliased("servant_id") name: str = Aliased("servant_name") icon: str = Aliased("servant_icon")HSR base memosprite.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var icon : strvar id : intvar model_config : pydantic.config.ConfigDictvar name : str
class BaseRelic (**data: Any)-
Expand source code
class BaseRelic(APIModel): """HSR base relic.""" id: int pos: int rarity: intHSR base relic.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var id : intvar model_config : pydantic.config.ConfigDictvar pos : intvar rarity : int
class BaseSkill (**data: Any)-
Expand source code
class BaseSkill(APIModel): """HSR character/memosprite skill.""" point_id: str point_type: int item_url: str level: int is_activated: bool is_rank_work: bool pre_point: str anchor: str remake: strHSR character/memosprite skill.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var anchor : strvar is_activated : boolvar is_rank_work : boolvar item_url : strvar level : intvar model_config : pydantic.config.ConfigDictvar point_id : strvar point_type : intvar pre_point : strvar remake : str
class DetailMemoSprite (**data: Any)-
Expand source code
class DetailMemoSprite(BaseMemoSprite): """HSR memosprite for detail character.""" properties: typing.Sequence[StarRailBaseProperty] = Aliased("servant_properties") skills: typing.Sequence[DetailSkill] = Aliased("servant_skills")HSR memosprite for detail character.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- BaseMemoSprite
- APIModel
- pydantic.main.BaseModel
Class variables
var model_config : pydantic.config.ConfigDictvar properties : Sequence[StarRailBaseProperty]var skills : Sequence[DetailSkill]
class DetailRelic (**data: Any)-
Expand source code
class DetailRelic(SimpleRelic): """HSR character relic with properties.""" wiki: str main_property: DetailRelicProperty properties: typing.Sequence[DetailRelicProperty]HSR character relic with properties.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- SimpleRelic
- BaseRelic
- APIModel
- pydantic.main.BaseModel
Class variables
var main_property : DetailRelicPropertyvar model_config : pydantic.config.ConfigDictvar properties : Sequence[DetailRelicProperty]var wiki : str
class DetailRelicProperty (**data: Any)-
Expand source code
class DetailRelicProperty(APIModel): """Relic property for detailed character.""" property_type: int value: str times: int preferred: bool recommended: bool info: PropertyInfoRelic property for detailed character.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var info : PropertyInfovar model_config : pydantic.config.ConfigDictvar preferred : boolvar property_type : intvar recommended : boolvar times : intvar value : str
class DetailSkill (**data: Any)-
Expand source code
class DetailSkill(BaseSkill): """HSR character/memosprite skill for detail character.""" skill_stages: typing.Sequence[SkillStage]HSR character/memosprite skill for detail character.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
Class variables
var model_config : pydantic.config.ConfigDictvar skill_stages : Sequence[SkillStage]
class FloorCharacter (**data: Any)-
Expand source code
class FloorCharacter(StarRailBaseCharacter): """Character in a floor.""" level: int rank: intCharacter in a floor.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Class variables
var level : intvar model_config : pydantic.config.ConfigDictvar rank : int
class LineupMemoSprite (**data: Any)-
Expand source code
class LineupMemoSprite(BaseMemoSprite): """HSR lineup memosprite.""" properties: typing.Sequence[StarRailLineupProperty] = Aliased("servant_properties") skills: typing.Sequence[BaseSkill] = Aliased("servant_skills")HSR lineup memosprite.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- BaseMemoSprite
- APIModel
- pydantic.main.BaseModel
Class variables
var model_config : pydantic.config.ConfigDictvar properties : Sequence[StarRailLineupProperty]var skills : Sequence[BaseSkill]
class LineupRelic (**data: Any)-
Expand source code
class LineupRelic(BaseRelic): """HSR lineup relic.""" set_name: str set_num: int main_property: RelicProperty properties: typing.Sequence[RelicProperty] wiki: str = Aliased("wiki_url")HSR lineup relic.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
Class variables
var main_property : RelicPropertyvar model_config : pydantic.config.ConfigDictvar properties : Sequence[RelicProperty]var set_name : strvar set_num : intvar wiki : str
class PropertyInfo (**data: Any)-
Expand source code
class PropertyInfo(APIModel): """Relic property info.""" property_type: int name: str icon: str property_name_relic: str property_name_filter: strRelic property 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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var icon : strvar model_config : pydantic.config.ConfigDictvar name : strvar property_name_filter : strvar property_name_relic : strvar property_type : int
class Rank (**data: Any)-
Expand source code
class Rank(APIModel): """HSR character eidolon.""" id: int pos: int name: str icon: str desc: str is_unlocked: boolHSR character eidolon.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var desc : strvar icon : strvar id : intvar is_unlocked : boolvar model_config : pydantic.config.ConfigDictvar name : strvar pos : int
class RelicProperty (**data: Any)-
Expand source code
class RelicProperty(APIModel): """HSR relic property.""" property_type: int value: str times: int name: str = Aliased("property_name") icon: strHSR relic property.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var icon : strvar model_config : pydantic.config.ConfigDictvar name : strvar property_type : intvar times : intvar value : str
class RogueCharacter (**data: Any)-
Expand source code
class RogueCharacter(StarRailBaseCharacter): """Rogue character model.""" level: int rank: intRogue character model.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Class variables
var level : intvar model_config : pydantic.config.ConfigDictvar rank : int
class SimpleRelic (**data: Any)-
Expand source code
class SimpleRelic(BaseRelic): """HSR simple relic without properties.""" level: int name: str desc: str icon: strHSR simple relic without properties.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
Subclasses
Class variables
var desc : strvar icon : strvar level : intvar model_config : pydantic.config.ConfigDictvar name : str
class SkillStage (**data: Any)-
Expand source code
class SkillStage(APIModel): """Character skill stage.""" name: str desc: str level: int remake: str item_url: str is_activated: bool is_rank_work: boolCharacter skill stage.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var desc : strvar is_activated : boolvar is_rank_work : boolvar item_url : strvar level : intvar model_config : pydantic.config.ConfigDictvar name : strvar remake : str
class StarRailBaseCharacter (**data: Any)-
Expand source code
class StarRailBaseCharacter(APIModel, Unique): """Base character model.""" id: int element: str rarity: int icon: strBase character model.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
Subclasses
Class variables
var element : strvar icon : strvar id : intvar model_config : pydantic.config.ConfigDictvar rarity : int
class StarRailBaseEquipment (**data: Any)-
Expand source code
class StarRailBaseEquipment(APIModel): """HSR character light cone.""" id: int level: int rank: int name: str desc: str icon: str rarity: intHSR character light cone.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var desc : strvar icon : strvar id : intvar level : intvar model_config : pydantic.config.ConfigDictvar name : strvar rank : intvar rarity : int
class StarRailBaseProperty (**data: Any)-
Expand source code
class StarRailBaseProperty(APIModel): """HSR detail character endpoint base property (for memosprite.)""" property_type: int info: PropertyInfo base: str add: str final: strHSR detail character endpoint base property (for memosprite.)
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var add : strvar base : strvar final : strvar info : PropertyInfovar model_config : pydantic.config.ConfigDictvar property_type : int
class StarRailCharacterProperty (**data: Any)-
Expand source code
class StarRailCharacterProperty(StarRailBaseProperty): """HSR property for detailed character, with preferred and recommended flags.""" preferred: bool recommended: boolHSR property for detailed character, with preferred and recommended flags.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailBaseProperty
- APIModel
- pydantic.main.BaseModel
Class variables
var model_config : pydantic.config.ConfigDictvar preferred : boolvar recommended : bool
class StarRailDetailCharacter (**data: Any)-
Expand source code
class StarRailDetailCharacter(StarRailSimpleCharacter): """HSR character with detailed equipment and relics.""" relics: typing.Sequence[DetailRelic] ornaments: typing.Sequence[DetailRelic] properties: typing.Sequence[StarRailCharacterProperty] skills: typing.Sequence[DetailSkill] memosprite: typing.Optional[DetailMemoSprite] = Aliased("servant_detail") @pydantic.field_validator("memosprite", mode="before") @classmethod def __return_none( cls, value: typing.Optional[typing.Dict[str, typing.Any]] ) -> typing.Optional[typing.Dict[str, typing.Any]]: """Return None if memosprite ID is 0.""" if value is None: return None if value.get("servant_id", "0") == "0": return None return valueHSR character with detailed equipment and relics.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailSimpleCharacter
- StarRailPartialCharacter
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Class variables
var memosprite : DetailMemoSprite | Nonevar model_config : pydantic.config.ConfigDictvar ornaments : Sequence[DetailRelic]var properties : Sequence[StarRailCharacterProperty]var relics : Sequence[DetailRelic]var skills : Sequence[DetailSkill]
Inherited members
class StarRailEquipment (**data: Any)-
Expand source code
class StarRailEquipment(StarRailBaseEquipment): """HSR character light cone.""" wiki: strHSR character light cone.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailBaseEquipment
- APIModel
- pydantic.main.BaseModel
Class variables
var model_config : pydantic.config.ConfigDictvar wiki : str
class StarRailLineupCharacter (**data: Any)-
Expand source code
class StarRailLineupCharacter(StarRailPartialCharacter): """HSR lineup simulator character.""" equip: typing.Optional[StarRailBaseEquipment] relics: typing.Sequence[LineupRelic] ranks: typing.Sequence[Rank] properties: typing.Sequence[StarRailLineupProperty] skills: typing.Sequence[BaseSkill] memosprite: typing.Optional[LineupMemoSprite] = Aliased("servant_detail") path: StarRailPath = Aliased("base_type") figure_path: strHSR lineup simulator character.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailPartialCharacter
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Class variables
var equip : StarRailBaseEquipment | Nonevar figure_path : strvar memosprite : LineupMemoSprite | Nonevar model_config : pydantic.config.ConfigDictvar path : StarRailPathvar properties : Sequence[StarRailLineupProperty]var ranks : Sequence[Rank]var relics : Sequence[LineupRelic]var skills : Sequence[BaseSkill]
class StarRailLineupProperty (**data: Any)-
Expand source code
class StarRailLineupProperty(APIModel): """HSR character/memosprite property for lineup simulator.""" property_type: int base: str add: str final: str name: str = Aliased("property_name") icon: str base_float: float add_float: float final_float: floatHSR character/memosprite property for lineup simulator.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var add : strvar add_float : floatvar base : strvar base_float : floatvar final : strvar final_float : floatvar icon : strvar model_config : pydantic.config.ConfigDictvar name : strvar property_type : int
class StarRailPartialCharacter (**data: Any)-
Expand source code
class StarRailPartialCharacter(StarRailBaseCharacter): """Character without any equipment.""" name: str level: int rank: intCharacter without any equipment.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Subclasses
Class variables
var level : intvar model_config : pydantic.config.ConfigDictvar name : strvar rank : int
class StarRailPath (value, names=None, *, module=None, qualname=None, type=None, start=1)-
Expand source code
class StarRailPath(enum.IntEnum): """StarRail character path.""" DESTRUCTION = 1 THE_HUNT = 2 ERUDITION = 3 HARMONY = 4 NIHILITY = 5 PRESERVATION = 6 ABUNDANCE = 7 REMEMBRANCE = 8 ELATION = 9StarRail character path.
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var ABUNDANCEvar DESTRUCTIONvar ELATIONvar ERUDITIONvar HARMONYvar NIHILITYvar PRESERVATIONvar REMEMBRANCEvar THE_HUNT
class StarRailSimpleCharacter (**data: Any)-
Expand source code
class StarRailSimpleCharacter(StarRailPartialCharacter): """HSR character with simplified data. Relics and ornaments have no properties, no skills, properties, and memosprite. This happens when the character is viewed by other players. """ image: str equip: typing.Optional[StarRailEquipment] relics: typing.Sequence[SimpleRelic] ornaments: typing.Sequence[SimpleRelic] ranks: typing.Sequence[Rank] path: StarRailPath = Aliased("base_type") figure_path: str @property def is_wearing_outfit(self) -> bool: """Whether the character is wearing an outfit.""" return "avatar_skin_image" in self.imageHSR character with simplified data.
Relics and ornaments have no properties, no skills, properties, and memosprite. This happens when the character is viewed by other players.
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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailPartialCharacter
- StarRailBaseCharacter
- APIModel
- pydantic.main.BaseModel
- Unique
- abc.ABC
Subclasses
Class variables
var equip : StarRailEquipment | Nonevar figure_path : strvar image : strvar model_config : pydantic.config.ConfigDictvar ornaments : Sequence[SimpleRelic]var path : StarRailPathvar ranks : Sequence[Rank]var relics : Sequence[SimpleRelic]
Instance variables
prop is_wearing_outfit : bool-
Expand source code
@property def is_wearing_outfit(self) -> bool: """Whether the character is wearing an outfit.""" return "avatar_skin_image" in self.imageWhether the character is wearing an outfit.