PyExplorer/src/items/AItems.py
2026-06-30 22:27:29 +02:00

46 lines
1 KiB
Python

from abc import ABC, abstractmethod
from pathlib import Path
class AItem(ABC):
"""
Raises:
FileNotFoundError: if the given path does not exist on the FS
PermissionError: if the process lacks permission to read the file metadata
"""
def __init__(self, path: Path) -> None:
self._path = path
self.update()
COLOR = 0
def update(self) -> None:
self._stat = self._path.lstat()
self._permissions = self._stat.st_mode
def fields(self) -> tuple[str, int, int]:
return (self.name, self.size, self.permissions)
def __str__(self) -> str:
return f"{self.name}, {self.size}, {self.permissions}"
@property
def path(self) -> Path:
return self._path
@property
def name(self) -> str:
return self._path.name
@property
def size(self) -> int:
return self._stat.st_size
@property
def permissions(self) -> int:
return self._permissions
@property
def color_pair(self) -> int:
return self.COLOR