Re: [pygccxml-development] mdecl and methods that return values
Brought to you by:
mbaas,
roman_yakovenko
From: Roman Y. <rom...@gm...> - 2006-05-30 19:22:30
|
On 5/30/06, Allen Bierbaum <al...@vr...> wrote: > I think you are talking about this part of the test: > > mb.global_ns[ *'public_base_t'* ].exclude() Right > Change it to something like this: > > mb.global_ns[ *'public_base_t'* ]['myFunction'].exclude() > > OR > > mb.global_ns[ *'public_base_t'* ].member_functions('myFunction').exclude() Now, I don't need unit test. I see why this does not work. Thanks. Now I know that you want redefine call_redirector_t.__call__ method in next way: #now def __call__( self, *arguments, **keywords ): for d in self.decls: callable_ = getattr(d, self.name) callable_( *arguments, **keywords ) #you want: def __call__( self, *arguments, **keywords ): results = [] for d in self.decls: callable_ = getattr(d, self.name) answer = callable_( *arguments, **keywords ) results.append( answer ) #I assume that all functions will return same type: if not results: return if isinstance( results[0], declaration_t ): return mdecl_wrapper_t( results ) elif isinstance( results[0], mdecl_wrapper_t ): temp_decls = [] for mdecl_wrapper in results: temp_decls.extend( mdecl_wrapper.decls ) return mdecl_wrapper_t( temp_decls ) else: return results Can you test whether this code will work for you or not? Thanks -- Roman Yakovenko C++ Python language binding http://www.language-binding.net/ |