Shofel2_T124_python/venv/lib/python3.10/site-packages/dacite/config.py

26 lines
900 B
Python

import sys
from dataclasses import dataclass, field
from typing import Dict, Any, Callable, Optional, Type, List
from dacite.frozen_dict import FrozenDict
if sys.version_info.minor >= 8:
from functools import cached_property # type: ignore # pylint: disable=no-name-in-module
else:
# Remove when we drop support for Python<3.8
cached_property = property # type: ignore # pylint: disable=invalid-name
@dataclass
class Config:
type_hooks: Dict[Type, Callable[[Any], Any]] = field(default_factory=dict)
cast: List[Type] = field(default_factory=list)
forward_references: Optional[Dict[str, Any]] = None
check_types: bool = True
strict: bool = False
strict_unions_match: bool = False
@cached_property
def hashable_forward_references(self) -> Optional[FrozenDict]:
return FrozenDict(self.forward_references) if self.forward_references else None