54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
|
|
class Path():
|
|
|
|
def __init__(self, *paths: str | Path):
|
|
self._absolute_path: str = ""
|
|
for path in paths:
|
|
self._absolute_path = os.path.join(self._absolute_path, path._absolute_path if isinstance(path, Path) else path)
|
|
self._absolute_path = os.path.abspath(self._absolute_path)
|
|
self._name: str = os.path.basename(self._absolute_path)
|
|
self._dirpath: str = os.path.dirname(self._absolute_path)
|
|
|
|
def __str__(self) -> str:
|
|
return self._name
|
|
|
|
def get_dirpath(self):
|
|
return self._dirpath
|
|
|
|
def get_url(self):
|
|
site_path: Path = Path(sys.argv[1])
|
|
return self._absolute_path[len(site_path._absolute_path):]
|
|
|
|
def get_absolute_path(self):
|
|
return self._absolute_path
|
|
|
|
def get_name(self):
|
|
if not self.exist():
|
|
return None
|
|
return self._name
|
|
|
|
def create(self) -> None:
|
|
os.makedirs(self.get_absolute_path())
|
|
|
|
def exist(self) -> bool:
|
|
return os.path.exists(self.get_absolute_path())
|
|
|
|
def get_dirs(self) -> list[Path]:
|
|
dirs: list[Path] = []
|
|
for element in os.listdir(self.get_absolute_path()):
|
|
path: Path = Path(self._absolute_path, element)
|
|
if (os.path.isdir(path.get_absolute_path())):
|
|
dirs.append(path)
|
|
return dirs
|
|
|
|
def get_files(self) -> list[Path]:
|
|
files: list[Path] = []
|
|
for element in os.listdir(self.get_absolute_path()):
|
|
path: Path = Path(self._absolute_path, element)
|
|
if (os.path.isfile(path.get_absolute_path())):
|
|
files.append(path)
|
|
return files |