Source code for pydelfini.delfini_core.models.user_stats
from typing import Any
from typing import Dict
from typing import Type
from typing import TypeVar
from attrs import define as _attrs_define
from ..models.user_stats_sign_in_methods import UserStatsSignInMethods
T = TypeVar("T", bound="UserStats")
[docs]
@_attrs_define
class UserStats:
"""User counts for the admin console
Attributes:
created_last_30_days (int):
created_last_7_days (int):
disabled (int):
sign_in_methods (UserStatsSignInMethods): Users per sign-in method: "password" plus each external sign-in
provider
total (int):
"""
created_last_30_days: int
created_last_7_days: int
disabled: int
sign_in_methods: "UserStatsSignInMethods"
total: int
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to a dict"""
created_last_30_days = self.created_last_30_days
created_last_7_days = self.created_last_7_days
disabled = self.disabled
sign_in_methods = self.sign_in_methods.to_dict()
total = self.total
field_dict: Dict[str, Any] = {}
field_dict.update(
{
"created_last_30_days": created_last_30_days,
"created_last_7_days": created_last_7_days,
"disabled": disabled,
"sign_in_methods": sign_in_methods,
"total": total,
}
)
return field_dict
[docs]
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
"""Create an instance of :py:class:`UserStats` from a dict"""
d = src_dict.copy()
created_last_30_days = d.pop("created_last_30_days")
created_last_7_days = d.pop("created_last_7_days")
disabled = d.pop("disabled")
sign_in_methods = UserStatsSignInMethods.from_dict(d.pop("sign_in_methods"))
total = d.pop("total")
user_stats = cls(
created_last_30_days=created_last_30_days,
created_last_7_days=created_last_7_days,
disabled=disabled,
sign_in_methods=sign_in_methods,
total=total,
)
return user_stats