Files
2026-07-13 12:47:58 +08:00

71 lines
1.8 KiB
Python

from dataclasses import dataclass
from enum import Enum
from typing import Optional
from e2b.envd.filesystem.filesystem_pb2 import EventType
from e2b.sandbox.filesystem.filesystem import EntryInfo
class FilesystemEventType(Enum):
"""
Enum representing the type of filesystem event.
"""
CHMOD = "chmod"
"""
Filesystem object permissions were changed.
"""
CREATE = "create"
"""
Filesystem object was created.
"""
REMOVE = "remove"
"""
Filesystem object was removed.
"""
RENAME = "rename"
"""
Filesystem object was renamed.
"""
WRITE = "write"
"""
Filesystem object was written to.
"""
def map_event_type(event: EventType):
if event == EventType.EVENT_TYPE_CHMOD:
return FilesystemEventType.CHMOD
elif event == EventType.EVENT_TYPE_CREATE:
return FilesystemEventType.CREATE
elif event == EventType.EVENT_TYPE_REMOVE:
return FilesystemEventType.REMOVE
elif event == EventType.EVENT_TYPE_RENAME:
return FilesystemEventType.RENAME
elif event == EventType.EVENT_TYPE_WRITE:
return FilesystemEventType.WRITE
@dataclass
class FilesystemEvent:
"""
Contains information about the filesystem event - the name of the file and the type of the event.
"""
name: str
"""
Relative path to the filesystem object.
"""
type: FilesystemEventType
"""
Filesystem operation event type.
"""
entry: Optional[EntryInfo] = None
"""
Information about the entry that triggered the event.
Only populated when the watch was started with `include_entry=True` and the
sandbox's envd version supports it. It may be `None` for events where the entry
no longer exists at the path (e.g. remove or rename-away events).
"""