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: parse.py
import json import pickle from enum import Enum from pathlib import Path from typing import Any, Callable, Union from pydantic.v1.types import StrBytes class Protocol(str, Enum): json = 'json' pickle = 'pickle' def load_str_bytes( b: StrBytes, *, content_type: str = None, encoding: str = 'utf8', proto: Protocol = None, allow_pickle: bool = False, json_loads: Callable[[str], Any] = json.loads, ) -> Any: if proto is None and content_type: if content_type.endswith(('json', 'javascript')): pass elif allow_pickle and content_type.endswith('pickle'): proto = Protocol.pickle else: raise TypeError(f'Unknown content-type: {content_type}') proto = proto or Protocol.json if proto == Protocol.json: if isinstance(b, bytes): b = b.decode(encoding) return json_loads(b) elif proto == Protocol.pickle: if not allow_pickle: raise RuntimeError('Trying to decode with pickle with allow_pickle=False') bb = b if isinstance(b, bytes) else b.encode() return pickle.loads(bb) else: raise TypeError(f'Unknown protocol: {proto}') def load_file( 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, ) -> Any: path = Path(path) b = path.read_bytes() if content_type is None: if path.suffix in ('.js', '.json'): proto = Protocol.json elif path.suffix == '.pkl': proto = Protocol.pickle return load_str_bytes( b, proto=proto, content_type=content_type, encoding=encoding, allow_pickle=allow_pickle, json_loads=json_loads )
Upload File
Create Folder