GRAYBYTE WORDPRESS FILE MANAGER2674

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/hc_python/lib/python3.12/site-packages/pydantic/v1/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/hc_python/lib/python3.12/site-packages/pydantic/v1//tools.py
import json
from functools import lru_cache
from pathlib import Path
from typing import TYPE_CHECKING, Any, Callable, Optional, Type, TypeVar, Union

from pydantic.v1.parse import Protocol, load_file, load_str_bytes
from pydantic.v1.types import StrBytes
from pydantic.v1.typing import display_as_type

__all__ = ('parse_file_as', 'parse_obj_as', 'parse_raw_as', 'schema_of', 'schema_json_of')

NameFactory = Union[str, Callable[[Type[Any]], str]]

if TYPE_CHECKING:
    from pydantic.v1.typing import DictStrAny


def _generate_parsing_type_name(type_: Any) -> str:
    return f'ParsingModel[{display_as_type(type_)}]'


@lru_cache(maxsize=2048)
def _get_parsing_type(type_: Any, *, type_name: Optional[NameFactory] = None) -> Any:
    from pydantic.v1.main import create_model

    if type_name is None:
        type_name = _generate_parsing_type_name
    if not isinstance(type_name, str):
        type_name = type_name(type_)
    return create_model(type_name, __root__=(type_, ...))


T = TypeVar('T')


def parse_obj_as(type_: Type[T], obj: Any, *, type_name: Optional[NameFactory] = None) -> T:
    model_type = _get_parsing_type(type_, type_name=type_name)  # type: ignore[arg-type]
    return model_type(__root__=obj).__root__


def parse_file_as(
    type_: Type[T],
    path: Union[str, Path],
    *,
    content_type: str = None,
    encoding: str = 'utf8',
    proto: Protocol = None,
    allow_pickle: bool = False,
    json_loads: Callable[[str], Any] = json.loads,
    type_name: Optional[NameFactory] = None,
) -> T:
    obj = load_file(
        path,
        proto=proto,
        content_type=content_type,
        encoding=encoding,
        allow_pickle=allow_pickle,
        json_loads=json_loads,
    )
    return parse_obj_as(type_, obj, type_name=type_name)


def parse_raw_as(
    type_: Type[T],
    b: StrBytes,
    *,
    content_type: str = None,
    encoding: str = 'utf8',
    proto: Protocol = None,
    allow_pickle: bool = False,
    json_loads: Callable[[str], Any] = json.loads,
    type_name: Optional[NameFactory] = None,
) -> T:
    obj = load_str_bytes(
        b,
        proto=proto,
        content_type=content_type,
        encoding=encoding,
        allow_pickle=allow_pickle,
        json_loads=json_loads,
    )
    return parse_obj_as(type_, obj, type_name=type_name)


def schema_of(type_: Any, *, title: Optional[NameFactory] = None, **schema_kwargs: Any) -> 'DictStrAny':
    """Generate a JSON schema (as dict) for the passed model or dynamically generated one"""
    return _get_parsing_type(type_, type_name=title).schema(**schema_kwargs)


def schema_json_of(type_: Any, *, title: Optional[NameFactory] = None, **schema_json_kwargs: Any) -> str:
    """Generate a JSON schema (as JSON) for the passed model or dynamically generated one"""
    return _get_parsing_type(type_, type_name=title).schema_json(**schema_json_kwargs)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
April 04 2025 08:00:28
root / root
0755
__pycache__
--
April 04 2025 08:00:28
root / root
0755
__init__.py
2.877 KB
April 04 2025 08:00:28
root / root
0644
_hypothesis_plugin.py
14.499 KB
April 04 2025 08:00:28
root / root
0644
annotated_types.py
3.083 KB
April 04 2025 08:00:28
root / root
0644
class_validators.py
14.328 KB
April 04 2025 08:00:28
root / root
0644
color.py
16.449 KB
April 04 2025 08:00:28
root / root
0644
config.py
6.379 KB
April 04 2025 08:00:28
root / root
0644
dataclasses.py
17.746 KB
April 04 2025 08:00:28
root / root
0644
datetime_parse.py
7.543 KB
April 04 2025 08:00:28
root / root
0644
decorator.py
10.097 KB
April 04 2025 08:00:28
root / root
0644
env_settings.py
13.774 KB
April 04 2025 08:00:28
root / root
0644
error_wrappers.py
5.074 KB
April 04 2025 08:00:28
root / root
0644
errors.py
17.311 KB
April 04 2025 08:00:28
root / root
0644
fields.py
49.462 KB
April 04 2025 08:00:28
root / root
0644
generics.py
17.452 KB
April 04 2025 08:00:28
root / root
0644
json.py
3.311 KB
April 04 2025 08:00:28
root / root
0644
main.py
43.497 KB
April 04 2025 08:00:28
root / root
0644
mypy.py
37.865 KB
April 04 2025 08:00:28
root / root
0644
networks.py
21.605 KB
April 04 2025 08:00:28
root / root
0644
parse.py
1.778 KB
April 04 2025 08:00:28
root / root
0644
py.typed
0 KB
April 04 2025 08:00:28
root / root
0644
schema.py
46.641 KB
April 04 2025 08:00:28
root / root
0644
tools.py
2.813 KB
April 04 2025 08:00:28
root / root
0644
types.py
34.624 KB
April 04 2025 08:00:28
root / root
0644
typing.py
18.933 KB
April 04 2025 08:00:28
root / root
0644
utils.py
25.312 KB
April 04 2025 08:00:28
root / root
0644
validators.py
21.48 KB
April 04 2025 08:00:28
root / root
0644
version.py
1.015 KB
April 04 2025 08:00:28
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF