cengal.data_manipulation.conversion.reinterpret_cast_management.standard_library.deep_copy_wrapper.versions.v_0.deep_copy_wrapper
Module Docstring Docstrings: http://www.python.org/dev/peps/pep-0257/
1#!/usr/bin/env python 2# coding=utf-8 3 4# Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space> 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17 18""" 19Module Docstring 20Docstrings: http://www.python.org/dev/peps/pep-0257/ 21""" 22 23from cengal.data_manipulation.conversion.reinterpret_cast_management.manager import BaseAutoDerivedObjWrapper 24from cengal.entities.copyable import copy__impl, deepcopy__impl 25from typing import Dict, Type, Callable, Any, Tuple, FrozenSet, Set 26from copy import Error as CopyError, copy, deepcopy 27 28__author__ = "ButenkoMS <gtalk@butenkoms.space>" 29__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 30__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 31__license__ = "Apache License, Version 2.0" 32__version__ = "4.4.1" 33__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 34__email__ = "gtalk@butenkoms.space" 35# __status__ = "Prototype" 36__status__ = "Development" 37# __status__ = "Production" 38 39 40class DeepCopyWrapper(BaseAutoDerivedObjWrapper): 41 def __init__(self): 42 super().__init__() 43 self._wrapping_required_per_type: Dict[Type, bool] = dict() 44 self._methods_per_type: Dict[Type, Dict[str, Callable]] = dict() 45 46 def wrapping_required(self, obj: Any, base_type: Type, fields: Tuple[str], planned_type_name: str) -> bool: 47 try: 48 return self._wrapping_required_per_type[base_type] 49 except KeyError: 50 pass 51 52 required: bool = False 53 try: 54 deepcopy(obj) 55 except CopyError: 56 required = True 57 58 self._wrapping_required_per_type[base_type] = required 59 return required 60 61 def methods(self, obj: Any, base_type: Type, fields: Tuple[str]) -> Dict[str, Callable]: 62 try: 63 return self._methods_per_type[base_type] 64 except KeyError: 65 pass 66 67 methods = { 68 '__deepcopy__': deepcopy__impl, 69 } 70 self._methods_per_type[base_type] = methods 71 return methods
class
DeepCopyWrapper(cengal.data_manipulation.conversion.reinterpret_cast_management.manager.versions.v_0.manager.BaseAutoDerivedObjWrapper):
41class DeepCopyWrapper(BaseAutoDerivedObjWrapper): 42 def __init__(self): 43 super().__init__() 44 self._wrapping_required_per_type: Dict[Type, bool] = dict() 45 self._methods_per_type: Dict[Type, Dict[str, Callable]] = dict() 46 47 def wrapping_required(self, obj: Any, base_type: Type, fields: Tuple[str], planned_type_name: str) -> bool: 48 try: 49 return self._wrapping_required_per_type[base_type] 50 except KeyError: 51 pass 52 53 required: bool = False 54 try: 55 deepcopy(obj) 56 except CopyError: 57 required = True 58 59 self._wrapping_required_per_type[base_type] = required 60 return required 61 62 def methods(self, obj: Any, base_type: Type, fields: Tuple[str]) -> Dict[str, Callable]: 63 try: 64 return self._methods_per_type[base_type] 65 except KeyError: 66 pass 67 68 methods = { 69 '__deepcopy__': deepcopy__impl, 70 } 71 self._methods_per_type[base_type] = methods 72 return methods
def
wrapping_required( self, obj: typing.Any, base_type: typing.Type, fields: typing.Tuple[str], planned_type_name: str) -> bool:
47 def wrapping_required(self, obj: Any, base_type: Type, fields: Tuple[str], planned_type_name: str) -> bool: 48 try: 49 return self._wrapping_required_per_type[base_type] 50 except KeyError: 51 pass 52 53 required: bool = False 54 try: 55 deepcopy(obj) 56 except CopyError: 57 required = True 58 59 self._wrapping_required_per_type[base_type] = required 60 return required
def
methods( self, obj: typing.Any, base_type: typing.Type, fields: typing.Tuple[str]) -> Dict[str, Callable]:
Inherited Members
- cengal.data_manipulation.conversion.reinterpret_cast_management.manager.versions.v_0.manager.BaseAutoDerivedObjWrapper
- instance_id
- class_name
- derived
- t
- base_classes
- gen_fields_tuple
- type
- temporary
- persistent