added DestructiveScratchPad
This commit is contained in:
parent
6ea55fbf08
commit
b06bf4d776
|
|
@ -29,7 +29,7 @@ __all__ = ['enumerate', 'unique', 'indent', 'nonRepeatingRandomList',
|
|||
'GoldenRectangle', 'pivotScalar', 'rad90', 'rad180', 'rad270', 'rad360',
|
||||
'nullGen', 'loopGen', 'makeFlywheelGen', 'flywheel', 'choice',
|
||||
'printStack', 'printReverseStack', 'listToIndex2item', 'listToItem2index',
|
||||
'pandaBreak','pandaTrace','formatTimeCompact']
|
||||
'pandaBreak','pandaTrace','formatTimeCompact','DestructiveScratchPad']
|
||||
|
||||
import types
|
||||
import string
|
||||
|
|
@ -2364,13 +2364,30 @@ except:
|
|||
class ScratchPad:
|
||||
"""empty class to stick values onto"""
|
||||
def __init__(self, **kArgs):
|
||||
for key, value in kArgs.items():
|
||||
for key, value in kArgs.iteritems():
|
||||
setattr(self, key, value)
|
||||
self._keys = kArgs.keys()
|
||||
self._keys = set(kArgs.keys())
|
||||
def add(self, **kArgs):
|
||||
for key, value in kArgs.iteritems():
|
||||
setattr(self, key, value)
|
||||
self._keys.update(kArgs.keys())
|
||||
def destroy(self):
|
||||
for key in self._keys:
|
||||
delattr(self, key)
|
||||
|
||||
class DestructiveScratchPad(ScratchPad):
|
||||
# automatically calls destroy() on elements passed to __init__
|
||||
def add(self, **kArgs):
|
||||
for key, value in kArgs.iteritems():
|
||||
if hasattr(self, key):
|
||||
getattr(self, key).destroy()
|
||||
setattr(self, key, value)
|
||||
self._keys.update(kArgs.keys())
|
||||
def destroy(self):
|
||||
for key in self._keys:
|
||||
getattr(self, key).destroy()
|
||||
ScratchPad.destroy(self)
|
||||
|
||||
class Sync:
|
||||
_SeriesGen = SerialNumGen()
|
||||
def __init__(self, name, other=None):
|
||||
|
|
@ -3394,6 +3411,7 @@ __builtin__.Queue = Queue
|
|||
__builtin__.Enum = Enum
|
||||
__builtin__.SerialNumGen = SerialNumGen
|
||||
__builtin__.ScratchPad = ScratchPad
|
||||
__builtin__.DestructiveScratchPad = DestructiveScratchPad
|
||||
__builtin__.uniqueName = uniqueName
|
||||
__builtin__.serialNum = serialNum
|
||||
__builtin__.profiled = profiled
|
||||
|
|
|
|||
Loading…
Reference in New Issue