cengal.data_manipulation.conversion.reinterpret_cast_management.standard_library.uni_copy_wrapper.versions.v_0.uni_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 UniCopyWrapper(BaseAutoDerivedObjWrapper): 41 def __init__(self): 42 super().__init__() 43 self._copy_wrapping_required_per_type: Dict[Type, bool] = dict() 44 self._deepcopy_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 copy_required: bool = None 49 try: 50 copy_required = self._copy_wrapping_required_per_type[base_type] 51 except KeyError: 52 pass 53 54 if copy_required is None: 55 try: 56 copy(obj) 57 copy_required = False 58 except CopyError: 59 copy_required = True 60 61 self._copy_wrapping_required_per_type[base_type] = copy_required 62 63 deepcopy_required: bool = None 64 try: 65 deepcopy_required = self._deepcopy_wrapping_required_per_type[base_type] 66 except KeyError: 67 pass 68 69 if deepcopy_required is None: 70 try: 71 deepcopy(obj) 72 deepcopy_required = False 73 except CopyError: 74 deepcopy_required = True 75 76 self._deepcopy_wrapping_required_per_type[base_type] = deepcopy_required 77 78 return copy_required or deepcopy_required 79 80 def methods(self, obj: Any, base_type: Type, fields: Tuple[str]) -> Dict[str, Callable]: 81 try: 82 return self._methods_per_type[base_type] 83 except KeyError: 84 pass 85 86 if self._copy_wrapping_required_per_type[base_type]: 87 methods = { 88 '__copy__': copy__impl, 89 } 90 else: 91 methods = {} 92 93 if self._deepcopy_wrapping_required_per_type[base_type]: 94 methods['__deepcopy__'] = deepcopy__impl 95 96 self._methods_per_type[base_type] = methods 97 return methods
class
UniCopyWrapper(cengal.data_manipulation.conversion.reinterpret_cast_management.manager.versions.v_0.manager.BaseAutoDerivedObjWrapper):
41class UniCopyWrapper(BaseAutoDerivedObjWrapper): 42 def __init__(self): 43 super().__init__() 44 self._copy_wrapping_required_per_type: Dict[Type, bool] = dict() 45 self._deepcopy_wrapping_required_per_type: Dict[Type, bool] = dict() 46 self._methods_per_type: Dict[Type, Dict[str, Callable]] = dict() 47 48 def wrapping_required(self, obj: Any, base_type: Type, fields: Tuple[str], planned_type_name: str) -> bool: 49 copy_required: bool = None 50 try: 51 copy_required = self._copy_wrapping_required_per_type[base_type] 52 except KeyError: 53 pass 54 55 if copy_required is None: 56 try: 57 copy(obj) 58 copy_required = False 59 except CopyError: 60 copy_required = True 61 62 self._copy_wrapping_required_per_type[base_type] = copy_required 63 64 deepcopy_required: bool = None 65 try: 66 deepcopy_required = self._deepcopy_wrapping_required_per_type[base_type] 67 except KeyError: 68 pass 69 70 if deepcopy_required is None: 71 try: 72 deepcopy(obj) 73 deepcopy_required = False 74 except CopyError: 75 deepcopy_required = True 76 77 self._deepcopy_wrapping_required_per_type[base_type] = deepcopy_required 78 79 return copy_required or deepcopy_required 80 81 def methods(self, obj: Any, base_type: Type, fields: Tuple[str]) -> Dict[str, Callable]: 82 try: 83 return self._methods_per_type[base_type] 84 except KeyError: 85 pass 86 87 if self._copy_wrapping_required_per_type[base_type]: 88 methods = { 89 '__copy__': copy__impl, 90 } 91 else: 92 methods = {} 93 94 if self._deepcopy_wrapping_required_per_type[base_type]: 95 methods['__deepcopy__'] = deepcopy__impl 96 97 self._methods_per_type[base_type] = methods 98 return methods
def
wrapping_required( self, obj: typing.Any, base_type: typing.Type, fields: typing.Tuple[str], planned_type_name: str) -> bool:
48 def wrapping_required(self, obj: Any, base_type: Type, fields: Tuple[str], planned_type_name: str) -> bool: 49 copy_required: bool = None 50 try: 51 copy_required = self._copy_wrapping_required_per_type[base_type] 52 except KeyError: 53 pass 54 55 if copy_required is None: 56 try: 57 copy(obj) 58 copy_required = False 59 except CopyError: 60 copy_required = True 61 62 self._copy_wrapping_required_per_type[base_type] = copy_required 63 64 deepcopy_required: bool = None 65 try: 66 deepcopy_required = self._deepcopy_wrapping_required_per_type[base_type] 67 except KeyError: 68 pass 69 70 if deepcopy_required is None: 71 try: 72 deepcopy(obj) 73 deepcopy_required = False 74 except CopyError: 75 deepcopy_required = True 76 77 self._deepcopy_wrapping_required_per_type[base_type] = deepcopy_required 78 79 return copy_required or deepcopy_required
def
methods( self, obj: typing.Any, base_type: typing.Type, fields: typing.Tuple[str]) -> Dict[str, Callable]:
81 def methods(self, obj: Any, base_type: Type, fields: Tuple[str]) -> Dict[str, Callable]: 82 try: 83 return self._methods_per_type[base_type] 84 except KeyError: 85 pass 86 87 if self._copy_wrapping_required_per_type[base_type]: 88 methods = { 89 '__copy__': copy__impl, 90 } 91 else: 92 methods = {} 93 94 if self._deepcopy_wrapping_required_per_type[base_type]: 95 methods['__deepcopy__'] = deepcopy__impl 96 97 self._methods_per_type[base_type] = methods 98 return methods
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