@@ -175,9 +175,12 @@ def iterEpilogue(self):
175175 """ Yields the items in the epilogue of this template. """
176176 return chain (* (h (self ) for h in self .configHandlers ('Epilogue' )))
177177
178- def makeParam (self , name , type ):
178+ def makeParam (self , name , type , ** kwds ):
179179 """ Creates a parameter as a mapping. """
180- return dict (name = name , type = type )
180+ param = dict (name = name , type = type )
181+ if 'default' in kwds :
182+ param ['default' ] = kwds ['default' ]
183+ return param
181184
182185 def parents (self , pred = lambda v :True ):
183186 """ Yield each parent in the family tree. """
@@ -379,14 +382,6 @@ class Annotation(Class):
379382
380383 def __init__ (self , config , name = None , type = None , parent = None ):
381384 super (Annotation , self ).__init__ (config , name , type , parent )
382- m = self .factory .method (parent = self , name = '__init__' )
383- m .parameters .append (self .makeParam ('*args' , 'list' ))
384- m .parameters .append (self .makeParam ('**kwds' , 'dict' ))
385- ## set attributes from kwds?
386- m = self .factory .method (parent = self , name = '__call__' )
387- m .parameters .append (self .makeParam ('klass' , 'type' ))
388- self .factory .expr (parent = m , fs = 'setattr(klass, self.__class__.__name__, self)' )
389- self .factory .expr (parent = m , fs = 'return klass' )
390385
391386
392387class Enum (Class ):
@@ -419,7 +414,11 @@ def __init__(self, config, name=None, type=None, parent=None):
419414
420415 def iterDecl (self ):
421416 """ Yields the declaration for this method template. """
422- params = ', ' .join (param ['name' ] for param in self .parameters )
417+ def formatParam (p ):
418+ if 'default' in p :
419+ return '{0}={1}' .format (p ['name' ], p ['default' ])
420+ return p ['name' ]
421+ params = ', ' .join (formatParam (param ) for param in self .parameters )
423422 yield 'def {0}({1}):' .format (self .name , params )
424423
425424 def iterBody (self ):
0 commit comments