File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed
Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -83,6 +83,14 @@ def __getattr__(self, name):
8383 raise AttributeError ("name '{:s}' is not defined" .format (name ))
8484 return e [name ]
8585
86+ def __delattr__ (self , name ):
87+ if not name .isidentifier ():
88+ raise ValueError ("'{}' is not a valid identifier" .format (name ))
89+ e = self ._env # __getattr__ not called if direct attr lookup succeeds, no need for hook.
90+ if name not in e :
91+ raise AttributeError ("name '{:s}' is not defined" .format (name ))
92+ del e [name ]
93+
8694 # membership test (in, not in)
8795 def __contains__ (self , k ):
8896 return self ._env .__contains__ (k )
@@ -115,6 +123,9 @@ def __getitem__(self, k):
115123 def __setitem__ (self , k , v ):
116124 setattr (self , k , v )
117125
126+ def __delitem__ (self , k ):
127+ delattr (self , k )
128+
118129 # context manager
119130 def __enter__ (self ):
120131 return self
You can’t perform that action at this time.
0 commit comments