Linux v69820.1blu.de 4.15.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Apache/2.4.58
Server IP : 195.90.215.149 & Your IP : 216.73.217.80
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
dotenv /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-07-10 10:56
__init__.py
1.26
KB
-rw-r--r--
2024-01-27 10:19
__main__.py
129
B
-rw-r--r--
2024-01-27 10:19
cli.py
5.67
KB
-rw-r--r--
2024-01-27 10:19
ipython.py
1.27
KB
-rw-r--r--
2024-01-27 10:19
main.py
11.81
KB
-rw-r--r--
2024-01-27 10:19
parser.py
5.06
KB
-rw-r--r--
2024-01-27 10:19
py.typed
26
B
-rw-r--r--
2024-01-27 10:19
variables.py
2.29
KB
-rw-r--r--
2024-01-27 10:19
version.py
22
B
-rw-r--r--
2024-01-27 10:19
Save
Rename
import re from abc import ABCMeta, abstractmethod from typing import Iterator, Mapping, Optional, Pattern _posix_variable: Pattern[str] = re.compile( r""" \$\{ (?P<name>[^\}:]*) (?::- (?P<default>[^\}]*) )? \} """, re.VERBOSE, ) class Atom(metaclass=ABCMeta): def __ne__(self, other: object) -> bool: result = self.__eq__(other) if result is NotImplemented: return NotImplemented return not result @abstractmethod def resolve(self, env: Mapping[str, Optional[str]]) -> str: ... class Literal(Atom): def __init__(self, value: str) -> None: self.value = value def __repr__(self) -> str: return f"Literal(value={self.value})" def __eq__(self, other: object) -> bool: if not isinstance(other, self.__class__): return NotImplemented return self.value == other.value def __hash__(self) -> int: return hash((self.__class__, self.value)) def resolve(self, env: Mapping[str, Optional[str]]) -> str: return self.value class Variable(Atom): def __init__(self, name: str, default: Optional[str]) -> None: self.name = name self.default = default def __repr__(self) -> str: return f"Variable(name={self.name}, default={self.default})" def __eq__(self, other: object) -> bool: if not isinstance(other, self.__class__): return NotImplemented return (self.name, self.default) == (other.name, other.default) def __hash__(self) -> int: return hash((self.__class__, self.name, self.default)) def resolve(self, env: Mapping[str, Optional[str]]) -> str: default = self.default if self.default is not None else "" result = env.get(self.name, default) return result if result is not None else "" def parse_variables(value: str) -> Iterator[Atom]: cursor = 0 for match in _posix_variable.finditer(value): (start, end) = match.span() name = match["name"] default = match["default"] if start > cursor: yield Literal(value=value[cursor:start]) yield Variable(name=name, default=default) cursor = end length = len(value) if cursor < length: yield Literal(value=value[cursor:length])