cengal.code_flow_control.gc.versions.v_0.gc
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 19__all__ = ['DisableGC', 'EnableGC'] 20 21 22""" 23Module Docstring 24Docstrings: http://www.python.org/dev/peps/pep-0257/ 25""" 26 27__author__ = "ButenkoMS <gtalk@butenkoms.space>" 28__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 29__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 30__license__ = "Apache License, Version 2.0" 31__version__ = "4.4.1" 32__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 33__email__ = "gtalk@butenkoms.space" 34# __status__ = "Prototype" 35__status__ = "Development" 36# __status__ = "Production" 37 38 39from gc import isenabled as gc_isenabled, enable as gc_enable, disable as gc_disable 40 41 42# context manager for temproary disabling GC 43class DisableGC: 44 def __init__(self): 45 self.was_enabled: bool = None 46 47 def __enter__(self): 48 self.was_enabled = gc_isenabled() 49 if self.was_enabled: 50 gc_disable() 51 52 def __exit__(self, exc_type, exc_val, exc_tb): 53 if self.was_enabled: 54 gc_enable() 55 self.was_enabled = None 56 return False 57 58 59# context manager for temporary enabling GC 60class EnableGC: 61 def __init__(self): 62 self.was_enabled: bool = None 63 64 def __enter__(self): 65 self.was_enabled = gc_isenabled() 66 if not self.was_enabled: 67 gc_enable() 68 69 def __exit__(self, exc_type, exc_val, exc_tb): 70 if not self.was_enabled: 71 gc_disable() 72 self.was_enabled = None 73 return False
class
DisableGC:
44class DisableGC: 45 def __init__(self): 46 self.was_enabled: bool = None 47 48 def __enter__(self): 49 self.was_enabled = gc_isenabled() 50 if self.was_enabled: 51 gc_disable() 52 53 def __exit__(self, exc_type, exc_val, exc_tb): 54 if self.was_enabled: 55 gc_enable() 56 self.was_enabled = None 57 return False
class
EnableGC:
61class EnableGC: 62 def __init__(self): 63 self.was_enabled: bool = None 64 65 def __enter__(self): 66 self.was_enabled = gc_isenabled() 67 if not self.was_enabled: 68 gc_enable() 69 70 def __exit__(self, exc_type, exc_val, exc_tb): 71 if not self.was_enabled: 72 gc_disable() 73 self.was_enabled = None 74 return False