Skip to content

file

Classes:

PackageStorage

PackageStorage(
    cwd: SPathLike | None = None,
    *,
    mode: int = 511,
    package_name: str | None = None
)

Methods:

Attributes:

Source code
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def __init__(self, cwd: SPathLike | None = None, *, mode: int = 0o777, package_name: str | None = None) -> None:
    if not package_name:
        from inspect import getmodule, stack

        frame = stack()[1]
        module = getmodule(frame[0])

        if module:
            package_name = module.__name__

        if not TYPE_CHECKING:
            frame = module = None

    if not package_name:
        raise CustomRuntimeError("Can't determine package name!")

    package_name = package_name.strip(".").split(".")[0]

    if not cwd:
        cwd = get_script_path()
    elif not isinstance(cwd, SPath):
        cwd = SPath(cwd)

    self.mode = mode
    self.folder = cwd / self.BASE_FOLDER / package_name

BASE_FOLDER class-attribute instance-attribute

BASE_FOLDER = SPath('.vsjet')

folder instance-attribute

folder = cwd / BASE_FOLDER / package_name

mode instance-attribute

mode = mode

ensure_folder

ensure_folder() -> None
Source code
39
40
def ensure_folder(self) -> None:
    self.folder.mkdir(self.mode, True, True)

get_file

get_file(filename: SPathLike, *, ext: SPathLike | None = None) -> SPath
Source code
42
43
44
45
46
47
48
49
50
def get_file(self, filename: SPathLike, *, ext: SPathLike | None = None) -> SPath:
    filename = SPath(filename)

    if ext:
        filename = filename.with_suffix(SPath(ext).suffix)

    self.ensure_folder()

    return (self.folder / filename.name).resolve()