Files
e2b-dev--e2b/packages/python-sdk/e2b/volume/client/models/volume_entry_stat.py
T
2026-07-13 12:47:58 +08:00

146 lines
3.3 KiB
Python

import datetime
from collections.abc import Mapping
from typing import Any, TypeVar, Union
from attrs import define as _attrs_define
from attrs import field as _attrs_field
from dateutil.parser import isoparse
from ..models.volume_entry_stat_type import VolumeEntryStatType
from ..types import UNSET, Unset
T = TypeVar("T", bound="VolumeEntryStat")
@_attrs_define
class VolumeEntryStat:
"""
Attributes:
name (str):
type_ (VolumeEntryStatType):
path (str):
size (int):
mode (int):
uid (int):
gid (int):
atime (datetime.datetime):
mtime (datetime.datetime):
ctime (datetime.datetime):
target (Union[Unset, str]):
"""
name: str
type_: VolumeEntryStatType
path: str
size: int
mode: int
uid: int
gid: int
atime: datetime.datetime
mtime: datetime.datetime
ctime: datetime.datetime
target: Union[Unset, str] = UNSET
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
def to_dict(self) -> dict[str, Any]:
name = self.name
type_ = self.type_.value
path = self.path
size = self.size
mode = self.mode
uid = self.uid
gid = self.gid
atime = self.atime.isoformat()
mtime = self.mtime.isoformat()
ctime = self.ctime.isoformat()
target = self.target
field_dict: dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
{
"name": name,
"type": type_,
"path": path,
"size": size,
"mode": mode,
"uid": uid,
"gid": gid,
"atime": atime,
"mtime": mtime,
"ctime": ctime,
}
)
if target is not UNSET:
field_dict["target"] = target
return field_dict
@classmethod
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
d = dict(src_dict)
name = d.pop("name")
type_ = VolumeEntryStatType(d.pop("type"))
path = d.pop("path")
size = d.pop("size")
mode = d.pop("mode")
uid = d.pop("uid")
gid = d.pop("gid")
atime = isoparse(d.pop("atime"))
mtime = isoparse(d.pop("mtime"))
ctime = isoparse(d.pop("ctime"))
target = d.pop("target", UNSET)
volume_entry_stat = cls(
name=name,
type_=type_,
path=path,
size=size,
mode=mode,
uid=uid,
gid=gid,
atime=atime,
mtime=mtime,
ctime=ctime,
target=target,
)
volume_entry_stat.additional_properties = d
return volume_entry_stat
@property
def additional_keys(self) -> list[str]:
return list(self.additional_properties.keys())
def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]
def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value
def __delitem__(self, key: str) -> None:
del self.additional_properties[key]
def __contains__(self, key: str) -> bool:
return key in self.additional_properties