99import logging
1010logger = logging .getLogger (__name__ )
1111
12+
13+
1214# Long is no longer a thing in python3.x
1315if sys .version_info > (3 ,):
1416 long = int
@@ -130,7 +132,8 @@ def __new__(cls, **props):
130132 obj = None
131133 validation_errors = []
132134 for klass in valid_types :
133- logger .debug ("Attempting to instantiate {0} as {1}" .format (
135+ logger .debug (util .lazy_format (
136+ "Attempting to instantiate {0} as {1}" ,
134137 cls , klass ))
135138 try :
136139 obj = klass (** props )
@@ -156,7 +159,7 @@ def __init__(self, **props):
156159 for prop in props :
157160
158161 try :
159- logger .debug ("Setting value for %s' to %s " , prop , props [prop ])
162+ logger .debug (util . lazy_format ( "Setting value for '{0}' to {1} " , prop , props [prop ]) )
160163 setattr (self , prop , props [prop ])
161164 except validators .ValidationError as e :
162165 import sys
@@ -214,7 +217,11 @@ def __setitem__(self, key, val):
214217 return setattr (self ,key , val )
215218
216219 def __delitem__ (self , key ):
217- return delattr (self , key )
220+ if key in self ._extended_properties :
221+ del self ._extended_properties [key ]
222+ return
223+
224+ return delattr (self , key )
218225
219226 def __getattr__ (self , name ):
220227 if name not in self ._extended_properties :
@@ -376,9 +383,9 @@ def resolve_classes(self, iterable):
376383
377384 def construct (self , uri , * args , ** kw ):
378385 """ Wrapper to debug things """
379- logger .debug ("Constructing {0}" . format ( uri ))
386+ logger .debug (util . lazy_format ( "Constructing {0}" , uri ))
380387 ret = self ._construct (uri , * args , ** kw )
381- logger .debug ("Constructed {0}" . format ( ret ))
388+ logger .debug (util . lazy_format ( "Constructed {0}" , ret ))
382389 return ret
383390
384391 def _construct (self , uri , clsdata , parent = (ProtocolBase ,)):
@@ -409,13 +416,13 @@ def _construct(self, uri, clsdata, parent=(ProtocolBase,)):
409416 clsdata ['type' ], (ProtocolBase , LiteralValue )):
410417 # It's possible that this reference was already resolved, in which
411418 # case it will have its type parameter set
412- logger .debug ("Using previously resolved type "
413- "(with different URI) for %s " , uri )
419+ logger .debug (util . lazy_format ( "Using previously resolved type "
420+ "(with different URI) for {0} " , uri ) )
414421 self .resolved [uri ] = clsdata ['type' ]
415422 elif uri in self .resolved :
416- logger .debug ("Using previously resolved object for %s " , uri )
423+ logger .debug (util . lazy_format ( "Using previously resolved object for {0} " , uri ) )
417424 else :
418- logger .debug ("Resolving object for %s " , uri )
425+ logger .debug (util . lazy_format ( "Resolving object for {0} " , uri ) )
419426
420427 with self .resolver .resolving (uri ) as resolved :
421428 self .resolved [uri ] = None # Set incase there is a circular reference in schema definition
@@ -473,7 +480,7 @@ def _build_literal(self, nm, clsdata):
473480 return cls
474481
475482 def _build_object (self , nm , clsdata , parents ):
476- logger .debug ("Building object {0}" . format ( nm ))
483+ logger .debug (util . lazy_format ( "Building object {0}" , nm ))
477484
478485 props = {}
479486
@@ -522,7 +529,7 @@ def _build_object(self, nm, clsdata, parents):
522529
523530 elif 'oneOf' in detail :
524531 potential = self .resolve_classes (detail ['oneOf' ])
525- logger .debug ("Designating {0} as oneOf {1}" . format ( prop , potential ))
532+ logger .debug (util . lazy_format ( "Designating {0} as oneOf {1}" , prop , potential ))
526533 desc = detail [
527534 'description' ] if 'description' in detail else ""
528535 props [prop ] = make_property (prop ,
0 commit comments