Source code for bungieapi.generated.components.schemas.destiny.artifacts
# generated by update to not change manually
import dataclasses as dt
import typing as t
from bungieapi.json import to_json
[docs]@dt.dataclass(frozen=True)
class DestinyArtifactProfileScoped:
"""Represents a Seasonal Artifact and all data related to it for the
requested Account.
It can be combined with Character-scoped data for a full picture of
what a character has available/has chosen, or just these settings
can be used for overview information.
"""
artifact_hash: t.Optional[int] = None
point_progression: t.Optional["DestinyProgression"] = None
points_acquired: t.Optional[int] = None
power_bonus: t.Optional[int] = None
power_bonus_progression: t.Optional["DestinyProgression"] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"artifactHash": to_json(self.artifact_hash),
"pointProgression": to_json(self.point_progression),
"pointsAcquired": to_json(self.points_acquired),
"powerBonusProgression": to_json(self.power_bonus_progression),
"powerBonus": to_json(self.power_bonus),
}
[docs]@dt.dataclass(frozen=True)
class DestinyArtifactCharacterScoped:
artifact_hash: t.Optional[int] = None
points_used: t.Optional[int] = None
reset_count: t.Optional[int] = None
tiers: t.Optional[t.Sequence["DestinyArtifactTier"]] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"artifactHash": to_json(self.artifact_hash),
"pointsUsed": to_json(self.points_used),
"resetCount": to_json(self.reset_count),
"tiers": to_json(self.tiers),
}
[docs]@dt.dataclass(frozen=True)
class DestinyArtifactTier:
is_unlocked: t.Optional[bool] = None
items: t.Optional[t.Sequence["DestinyArtifactTierItem"]] = None
points_to_unlock: t.Optional[int] = None
tier_hash: t.Optional[int] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"tierHash": to_json(self.tier_hash),
"isUnlocked": to_json(self.is_unlocked),
"pointsToUnlock": to_json(self.points_to_unlock),
"items": to_json(self.items),
}
[docs]@dt.dataclass(frozen=True)
class DestinyArtifactTierItem:
is_active: t.Optional[bool] = None
item_hash: t.Optional[int] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"itemHash": to_json(self.item_hash),
"isActive": to_json(self.is_active),
}
# imported at the end to do not case circular imports for type annotations
from bungieapi.generated.components.schemas.destiny import (
DestinyProgression,
) # noqa: E402