chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import datetime
|
||||
from typing import Optional
|
||||
|
||||
from e2b.volume.client.models import VolumeEntryStat as VolumeEntryStatApi
|
||||
from e2b.volume.client.types import UNSET
|
||||
from e2b.volume.types import VolumeEntryStat
|
||||
|
||||
|
||||
def _ensure_utc(dt: datetime.datetime) -> datetime.datetime:
|
||||
"""Mark a timezone-naive datetime as UTC (API timestamps are UTC)."""
|
||||
if dt.tzinfo is None:
|
||||
return dt.replace(tzinfo=datetime.timezone.utc)
|
||||
return dt
|
||||
|
||||
|
||||
def convert_volume_entry_stat(api_stat: VolumeEntryStatApi) -> VolumeEntryStat:
|
||||
"""Convert API VolumeEntryStat to SDK VolumeEntryStat."""
|
||||
target: Optional[str] = None
|
||||
if api_stat.target is not UNSET and api_stat.target is not None:
|
||||
target = str(api_stat.target)
|
||||
|
||||
return VolumeEntryStat(
|
||||
name=api_stat.name,
|
||||
type=api_stat.type_,
|
||||
path=api_stat.path,
|
||||
size=api_stat.size,
|
||||
mode=api_stat.mode,
|
||||
uid=api_stat.uid,
|
||||
gid=api_stat.gid,
|
||||
atime=_ensure_utc(api_stat.atime),
|
||||
mtime=_ensure_utc(api_stat.mtime),
|
||||
ctime=_ensure_utc(api_stat.ctime),
|
||||
target=target,
|
||||
)
|
||||
|
||||
|
||||
class DualMethod:
|
||||
"""Descriptor enabling the same name for a static (class-level) and instance method.
|
||||
|
||||
When accessed on the class (e.g. ``Volume.get_info``), the static function
|
||||
is returned. When accessed on an instance (e.g. ``vol.get_info``), the
|
||||
instance method is returned as a bound method.
|
||||
"""
|
||||
|
||||
def __init__(self, static_fn, instance_fn):
|
||||
self._static_fn = static_fn
|
||||
self._instance_fn = instance_fn
|
||||
|
||||
def __get__(self, obj, objtype=None):
|
||||
if obj is None:
|
||||
return self._static_fn
|
||||
return self._instance_fn.__get__(obj, objtype)
|
||||
Reference in New Issue
Block a user