X7ROOT File Manager
Current Path:
/opt/hc_python/lib/python3.12/site-packages/pydantic/v1
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
pydantic
/
v1
/
??
..
??
__init__.py
(2.88 KB)
??
__pycache__
??
_hypothesis_plugin.py
(14.5 KB)
??
annotated_types.py
(3.08 KB)
??
class_validators.py
(14.33 KB)
??
color.py
(16.45 KB)
??
config.py
(6.38 KB)
??
dataclasses.py
(17.75 KB)
??
datetime_parse.py
(7.54 KB)
??
decorator.py
(10.1 KB)
??
env_settings.py
(13.77 KB)
??
error_wrappers.py
(5.07 KB)
??
errors.py
(17.31 KB)
??
fields.py
(49.46 KB)
??
generics.py
(17.45 KB)
??
json.py
(3.31 KB)
??
main.py
(43.5 KB)
??
mypy.py
(37.87 KB)
??
networks.py
(21.61 KB)
??
parse.py
(1.78 KB)
??
py.typed
(0 B)
??
schema.py
(46.64 KB)
??
tools.py
(2.81 KB)
??
types.py
(34.62 KB)
??
typing.py
(18.93 KB)
??
utils.py
(25.31 KB)
??
validators.py
(21.48 KB)
??
version.py
(1.01 KB)
Editing: 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)
Upload File
Create Folder