#NEWLINE# @ rbac ( ( 'owner' , 'user' ) ) #NEWLINE# def get_req_default( self , vt_required = None ) : #NEWLINE# #INDENT# 'Returns a list of all inputs that are required but still have\n        their default value.\n        ' #NEWLINE# req = [ ] #NEWLINE# if vt_required : #NEWLINE# #INDENT# req_test = [ True , False , None ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# req_test = [ True ] #NEWLINE# #UNINDENT# for ( name , trait ) in self . traits ( type = not_event ) . items ( ) : #NEWLINE# #INDENT# obj = getattr ( self , name ) #NEWLINE# if ( obj is self . parent ) : #NEWLINE# #INDENT# continue #NEWLINE# #UNINDENT# if is_instance ( obj , VariableTree ) : #NEWLINE# #INDENT# req . extend ( [ '.' . join ( ( self . name , n ) ) for n in obj . get_req_default ( vt_required ) ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( trait . required in req ) : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# trait = trait . trait_type #NEWLINE# #UNINDENT# except : #NEWLINE# #INDENT# unset = ( obj == trait . default ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# unset = ( obj == trait . default_value ) #NEWLINE# #UNINDENT# if ( not isinstance ( unset , bool ) ) : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# unset = unset . all ( ) #NEWLINE# #UNINDENT# except : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# #UNINDENT# if unset : #NEWLINE# #INDENT# req . append ( '.' . join ( ( self . name , name ) ) ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# return req