__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.217.0: ~ $
import functools
import pathlib
from typing import Protocol, Union, runtime_checkable

####
# from jaraco.path 3.7.1


class Symlink(str):
    """
    A string indicating the target of a symlink.
    """


FilesSpec = dict[str, Union[str, bytes, Symlink, 'FilesSpec']]


@runtime_checkable
class TreeMaker(Protocol):
    def __truediv__(self, *args, **kwargs): ...  # pragma: no cover

    def mkdir(self, **kwargs): ...  # pragma: no cover

    def write_text(self, content, **kwargs): ...  # pragma: no cover

    def write_bytes(self, content): ...  # pragma: no cover

    def symlink_to(self, target): ...  # pragma: no cover


def _ensure_tree_maker(obj: str | TreeMaker) -> TreeMaker:
    return obj if isinstance(obj, TreeMaker) else pathlib.Path(obj)  # type: ignore[return-value]


def build(
    spec: FilesSpec,
    prefix: str | TreeMaker = pathlib.Path(),  # type: ignore[assignment]
):
    """
    Build a set of files/directories, as described by the spec.

    Each key represents a pathname, and the value represents
    the content. Content may be a nested directory.

    >>> spec = {
    ...     'README.txt': "A README file",
    ...     "foo": {
    ...         "__init__.py": "",
    ...         "bar": {
    ...             "__init__.py": "",
    ...         },
    ...         "baz.py": "# Some code",
    ...         "bar.py": Symlink("baz.py"),
    ...     },
    ...     "bing": Symlink("foo"),
    ... }
    >>> target = getfixture('tmp_path')
    >>> build(spec, target)
    >>> target.joinpath('foo/baz.py').read_text(encoding='utf-8')
    '# Some code'
    >>> target.joinpath('bing/bar.py').read_text(encoding='utf-8')
    '# Some code'
    """
    for name, contents in spec.items():
        create(contents, _ensure_tree_maker(prefix) / name)


@functools.singledispatch
def create(content: str | bytes | FilesSpec, path):
    path.mkdir(exist_ok=True)
    build(content, prefix=path)  # type: ignore[arg-type]


@create.register
def _(content: bytes, path):
    path.write_bytes(content)


@create.register
def _(content: str, path):
    path.write_text(content, encoding='utf-8')


@create.register
def _(content: Symlink, path):
    path.symlink_to(content)


# end from jaraco.path
####

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
compat Folder 0755
__init__.py File 0 B 0644
_path.py File 2.17 KB 0644
test_compatibilty_files.py File 3.01 KB 0644
test_contents.py File 838 B 0644
test_custom.py File 1.19 KB 0644
test_files.py File 5.34 KB 0644
test_functional.py File 8.78 KB 0644
test_open.py File 2.57 KB 0644
test_path.py File 1.92 KB 0644
test_read.py File 2.93 KB 0644
test_reader.py File 4.28 KB 0644
test_resource.py File 7.8 KB 0644
test_util.py File 1.08 KB 0644
util.py File 9.56 KB 0644
zip.py File 577 B 0644