$62 GRAYBYTE WORDPRESS FILE MANAGER $28

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.15.130 | ADMIN IP 216.73.216.174
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/hc_python/lib/python3.12/site-packages/pre_commit/

HOME
Current File : /opt/hc_python/lib/python3.12/site-packages/pre_commit//envcontext.py
from __future__ import annotations

import contextlib
import enum
import os
from collections.abc import Generator
from collections.abc import MutableMapping
from typing import NamedTuple
from typing import Union

_Unset = enum.Enum('_Unset', 'UNSET')
UNSET = _Unset.UNSET


class Var(NamedTuple):
    name: str
    default: str = ''


SubstitutionT = tuple[Union[str, Var], ...]
ValueT = Union[str, _Unset, SubstitutionT]
PatchesT = tuple[tuple[str, ValueT], ...]


def format_env(parts: SubstitutionT, env: MutableMapping[str, str]) -> str:
    return ''.join(
        env.get(part.name, part.default) if isinstance(part, Var) else part
        for part in parts
    )


@contextlib.contextmanager
def envcontext(
        patch: PatchesT,
        _env: MutableMapping[str, str] | None = None,
) -> Generator[None]:
    """In this context, `os.environ` is modified according to `patch`.

    `patch` is an iterable of 2-tuples (key, value):
        `key`: string
        `value`:
            - string: `environ[key] == value` inside the context.
            - UNSET: `key not in environ` inside the context.
            - template: A template is a tuple of strings and Var which will be
              replaced with the previous environment
    """
    env = os.environ if _env is None else _env
    before = dict(env)

    for k, v in patch:
        if v is UNSET:
            env.pop(k, None)
        elif isinstance(v, tuple):
            env[k] = format_env(v, before)
        else:
            env[k] = v

    try:
        yield
    finally:
        env.clear()
        env.update(before)


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Dec 2025 9.30 AM
root / root
0755
__pycache__
--
3 Dec 2025 9.30 AM
root / root
0755
commands
--
3 Dec 2025 9.30 AM
root / root
0755
languages
--
3 Dec 2025 9.30 AM
root / root
0755
meta_hooks
--
3 Dec 2025 9.30 AM
root / root
0755
resources
--
3 Dec 2025 9.30 AM
root / root
0755
__init__.py
0 KB
3 Dec 2025 9.30 AM
root / root
0644
__main__.py
0.124 KB
3 Dec 2025 9.30 AM
root / root
0644
all_languages.py
1.429 KB
3 Dec 2025 9.30 AM
root / root
0644
clientlib.py
16.421 KB
3 Dec 2025 9.30 AM
root / root
0644
color.py
3.144 KB
3 Dec 2025 9.30 AM
root / root
0644
constants.py
0.275 KB
3 Dec 2025 9.30 AM
root / root
0644
envcontext.py
1.556 KB
3 Dec 2025 9.30 AM
root / root
0644
error_handler.py
2.56 KB
3 Dec 2025 9.30 AM
root / root
0644
errors.py
0.076 KB
3 Dec 2025 9.30 AM
root / root
0644
file_lock.py
2.296 KB
3 Dec 2025 9.30 AM
root / root
0644
git.py
8.327 KB
3 Dec 2025 9.30 AM
root / root
0644
hook.py
1.478 KB
3 Dec 2025 9.30 AM
root / root
0644
lang_base.py
5.258 KB
3 Dec 2025 9.30 AM
root / root
0644
logging_handler.py
0.995 KB
3 Dec 2025 9.30 AM
root / root
0644
main.py
15.545 KB
3 Dec 2025 9.30 AM
root / root
0644
output.py
0.89 KB
3 Dec 2025 9.30 AM
root / root
0644
parse_shebang.py
2.423 KB
3 Dec 2025 9.30 AM
root / root
0644
prefix.py
0.483 KB
3 Dec 2025 9.30 AM
root / root
0644
repository.py
7.43 KB
3 Dec 2025 9.30 AM
root / root
0644
staged_files_only.py
4.058 KB
3 Dec 2025 9.30 AM
root / root
0644
store.py
8.271 KB
3 Dec 2025 9.30 AM
root / root
0644
util.py
6.882 KB
3 Dec 2025 9.30 AM
root / root
0644
xargs.py
5.42 KB
3 Dec 2025 9.30 AM
root / root
0644
yaml.py
0.548 KB
3 Dec 2025 9.30 AM
root / root
0644
yaml_rewrite.py
1.306 KB
3 Dec 2025 9.30 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF