83 lines
2.0 KiB
Python
83 lines
2.0 KiB
Python
"""
|
|
Library of custom type hints.
|
|
"""
|
|
|
|
from typing import TypeAlias as Neotype, TypedDict as Dict
|
|
from typing import Required
|
|
from collections.abc import Sequence
|
|
from pathlib import Path, PurePath, PurePosixPath, PureWindowsPath, PosixPath, WindowsPath
|
|
from enum import StrEnum, auto
|
|
from io import TextIOBase, BufferedIOBase, RawIOBase
|
|
|
|
ExecutedPath: Neotype = PosixPath | WindowsPath
|
|
IdlePath: Neotype = PurePosixPath | PureWindowsPath
|
|
File: Neotype = TextIOBase | BufferedIOBase | RawIOBase
|
|
|
|
class RootFate(StrEnum):
|
|
disposal = auto()
|
|
retention = auto()
|
|
|
|
class NodeType(StrEnum):
|
|
remote = auto()
|
|
control = auto()
|
|
|
|
class VPS(StrEnum):
|
|
Linode = auto()
|
|
|
|
class VPSRegion(StrEnum):
|
|
us_east = auto()
|
|
|
|
class AnsibleScopes(StrEnum):
|
|
INTERNAL = auto()
|
|
INVENTORY = auto()
|
|
GROUPVARS = auto()
|
|
HOSTVARS = auto()
|
|
ROLE = auto()
|
|
|
|
class AnsibleRoles(StrEnum):
|
|
bootstrap = auto()
|
|
|
|
class Scopes(StrEnum):
|
|
SYS = auto()
|
|
USER = auto()
|
|
LOCAL = auto()
|
|
PROJ = auto()
|
|
SHARED = auto()
|
|
|
|
class Roles(StrEnum):
|
|
CONF = auto()
|
|
DATA = auto()
|
|
MEM = auto()
|
|
EXE = auto()
|
|
|
|
class UserName(StrEnum):
|
|
root = auto()
|
|
|
|
class GroupName(StrEnum):
|
|
remote = auto()
|
|
sudo = auto()
|
|
|
|
class Software(StrEnum):
|
|
openssh_client = auto()
|
|
openssh_server = auto()
|
|
|
|
class SoftwareRoles(StrEnum):
|
|
client = auto()
|
|
server = auto()
|
|
|
|
class PacMans(StrEnum):
|
|
APT = auto()
|
|
|
|
class PathCollection(Dict, total=False):
|
|
sys: ExecutedPath | IdlePath | str | Sequence[ExecutedPath | IdlePath | str]
|
|
user: ExecutedPath | IdlePath | str | Sequence[ExecutedPath | IdlePath | str]
|
|
local: ExecutedPath | IdlePath | str | Sequence[ExecutedPath | IdlePath | str]
|
|
proj: ExecutedPath | IdlePath | str | Sequence[ExecutedPath | IdlePath | str]
|
|
shared: ExecutedPath | IdlePath | str | Sequence[ExecutedPath | IdlePath | str]
|
|
|
|
class PathRoles(Dict, total=False):
|
|
conf: PathCollection
|
|
data: PathCollection
|
|
mem: PathCollection
|
|
exe: PathCollection
|