[pygccxml-commit] SF.net SVN: pygccxml:[1592] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2009-01-19 20:13:18
|
Revision: 1592 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1592&view=rev Author: roman_yakovenko Date: 2009-01-19 20:13:07 +0000 (Mon, 19 Jan 2009) Log Message: ----------- small refactoring, which improves code repository files handling Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/array_1_registrator.py pyplusplus_dev/pyplusplus/code_creators/bookmark.py pyplusplus_dev/pyplusplus/code_creators/calldef.py pyplusplus_dev/pyplusplus/code_creators/calldef_transformed.py pyplusplus_dev/pyplusplus/code_creators/class_declaration.py pyplusplus_dev/pyplusplus/code_creators/class_introduction.py pyplusplus_dev/pyplusplus/code_creators/code_creator.py pyplusplus_dev/pyplusplus/code_creators/compound.py pyplusplus_dev/pyplusplus/code_creators/ctypes_integration_creators.py pyplusplus_dev/pyplusplus/code_creators/custom.py pyplusplus_dev/pyplusplus/code_creators/embedded_code_repository.py pyplusplus_dev/pyplusplus/code_creators/enum.py pyplusplus_dev/pyplusplus/code_creators/exception_translator.py pyplusplus_dev/pyplusplus/code_creators/fields_definition.py pyplusplus_dev/pyplusplus/code_creators/function_definition.py pyplusplus_dev/pyplusplus/code_creators/global_variable.py pyplusplus_dev/pyplusplus/code_creators/import_.py pyplusplus_dev/pyplusplus/code_creators/include.py pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py pyplusplus_dev/pyplusplus/code_creators/instruction.py pyplusplus_dev/pyplusplus/code_creators/library_reference.py pyplusplus_dev/pyplusplus/code_creators/license.py pyplusplus_dev/pyplusplus/code_creators/mem_fun_introduction.py pyplusplus_dev/pyplusplus/code_creators/member_variable.py pyplusplus_dev/pyplusplus/code_creators/methods_definition.py pyplusplus_dev/pyplusplus/code_creators/module.py pyplusplus_dev/pyplusplus/code_creators/module_body.py pyplusplus_dev/pyplusplus/code_creators/name_mappings.py pyplusplus_dev/pyplusplus/code_creators/namespace.py pyplusplus_dev/pyplusplus/code_creators/namespace_as_pyclass.py pyplusplus_dev/pyplusplus/code_creators/opaque_type_registrator.py pyplusplus_dev/pyplusplus/code_creators/properties.py pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py pyplusplus_dev/pyplusplus/code_creators/typedef_as_pyvar.py pyplusplus_dev/pyplusplus/code_creators/unnamed_enum.py pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py pyplusplus_dev/pyplusplus/file_writers/multiple_files.py pyplusplus_dev/pyplusplus/file_writers/writer.py pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py Modified: pyplusplus_dev/pyplusplus/code_creators/array_1_registrator.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/array_1_registrator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/array_1_registrator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -65,5 +65,5 @@ fn_def = templates.join( '::'.join( [ns_name, fn_name] ), fn_def_tmpl_args ) return call_invocation.join( fn_def, [ '"%s"' % self._create_name() ] ) + ';' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.array_1.file_name] Modified: pyplusplus_dev/pyplusplus/code_creators/bookmark.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/bookmark.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/bookmark.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -14,5 +14,5 @@ def _create_impl(self): return compound.compound_t.create_internal_code( self.creators, indent_code=False ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/calldef.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/calldef.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/calldef.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -136,7 +136,7 @@ return ''.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): files = [] if self.declaration.call_policies: files.append( self.declaration.call_policies.header_file ) @@ -176,7 +176,7 @@ else: return ' throw()' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): files = [] if self.declaration.transformations: ft = self.declaration.transformations[0] @@ -950,7 +950,7 @@ def _create_impl( self ): return 'staticmethod( "%s" )' % self.function_code_creator.alias - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class constructor_wrapper_t( calldef_wrapper_t ): @@ -1047,7 +1047,7 @@ answer.append( '}' ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class null_constructor_wrapper_t( code_creator.code_creator_t @@ -1079,7 +1079,7 @@ answer.append( '}' ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] #in python all operators are members of class, while in C++ @@ -1163,7 +1163,7 @@ code = self._create_unary_operator() return 'def( %s )' % code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class casting_operator_t( registration_based.registration_based_t @@ -1188,7 +1188,7 @@ , [ from_arg , to_arg ] ) \ + '();' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class casting_member_operator_t( registration_based.registration_based_t @@ -1225,7 +1225,7 @@ , 'doc' : doc } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class casting_constructor_t( registration_based.registration_based_t @@ -1250,7 +1250,7 @@ return declarations.templates.join(implicitly_convertible, [from_arg, to_arg ]) \ + '();' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class destructor_wrapper_t( code_creator.code_creator_t @@ -1268,7 +1268,7 @@ answer.append( '}' ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -1342,7 +1342,7 @@ , 'max' : max_ } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class free_fun_overloads_class_t( calldef_overloads_class_t ): @@ -1363,7 +1363,7 @@ , 'max' : max_ } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class calldef_overloads_t( registration_based.registration_based_t ): @@ -1450,7 +1450,7 @@ return ''.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class mem_fun_overloads_t( calldef_overloads_t ): Modified: pyplusplus_dev/pyplusplus/code_creators/calldef_transformed.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/calldef_transformed.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/calldef_transformed.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -417,8 +417,8 @@ def _create_impl(self): return os.linesep.join([ self.create_override(), '', self.create_default() ]) - def _get_system_headers_impl( self ): - files = super( mem_fun_v_transformed_wrapper_t, self )._get_system_headers_impl() + def _get_system_files_impl( self ): + files = super( mem_fun_v_transformed_wrapper_t, self )._get_system_files_impl() files.append( code_repository.convenience.file_name ) return files Modified: pyplusplus_dev/pyplusplus/code_creators/class_declaration.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -82,7 +82,7 @@ else: return self._generate_code_no_scope() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class class_t( scoped.scoped_t, registration_based.registration_based_t ): @@ -320,7 +320,7 @@ else: return self._generate_code_no_scope() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] #open question: should I put class wrapper under some specifiec namespace? @@ -395,5 +395,5 @@ answer.append( '};' ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/class_introduction.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/class_introduction.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/class_introduction.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -41,7 +41,7 @@ % dict( ns_full_name=self.complete_py_name, name=self.alias )) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -62,5 +62,5 @@ % dict( ns_full_name=self.complete_py_name, name=self.alias )) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/code_creator.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/code_creator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/code_creator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -5,6 +5,8 @@ import os import types +from pyplusplus import decl_wrappers +from pyplusplus import code_repository class code_creator_t(object): """ @@ -23,6 +25,8 @@ __INDENTATION = ' ' LINE_LENGTH = 80 PARAM_SEPARATOR = ', ' + CODE_GENERATOR_TYPES = decl_wrappers.CODE_GENERATOR_TYPES + def __init__(self): """Constructor. @@ -33,7 +37,11 @@ self._parent = None self._target_configuration = None self._works_on_instance = True + self._code_generator = None + @property + def code_generator( self ): + return self._code_generator def _get_works_on_instance(self): return self._works_on_instance @@ -110,18 +118,32 @@ uheaders.append( h ) return uheaders - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): """Return list of system header files the generated code depends on""" raise NotImplementedError(self.__class__.__name__) - def get_system_headers( self, recursive=False, unique=False ): - files = [ "boost/python.hpp" ] - files.extend( self._get_system_headers_impl() ) + def get_system_files( self, recursive=False, unique=False, language='any' ): + files = [] + if self.code_generator == self.CODE_GENERATOR_TYPES.BOOST_PYTHON: + files.append( "boost/python.hpp" ) + files.append( code_repository.named_tuple.file_name ) + else: + files.append( 'ctypes_utils.py' ) + files.extend( self._get_system_files_impl() ) files = filter( None, files) if unique: files = self.unique_headers( files ) - return files + language = language.lower() + if language == 'python': + selector = lambda f: os.path.splitext( f )[1] in ( '.py' ) + elif language == 'c++': + selector = lambda f: os.path.splitext( f )[1] in ( '.h', '.hpp', '.cpp' ) + else: + selector = None + + return filter( selector, files ) + def beautify( self, code ): """ function that returns code without leading and trailing whitespaces. @@ -205,5 +227,5 @@ def _create_impl(self): return self.__code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/compound.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/compound.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/compound.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -77,12 +77,12 @@ internals[index] = internals[index] + os.linesep return os.linesep.join( internals ) - def get_system_headers( self, recursive=False, unique=False ): + def get_system_files( self, recursive=False, unique=False ): files = [ "boost/python.hpp" ] - files.extend( self._get_system_headers_impl() ) + files.extend( self._get_system_files_impl() ) if recursive: for creator in self._creators: - files.extend( creator.get_system_headers(recursive, unique=False) ) + files.extend( creator.get_system_files(recursive, unique=False) ) files = filter( None, files ) if unique: files = self.unique_headers( files ) Modified: pyplusplus_dev/pyplusplus/code_creators/ctypes_integration_creators.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/ctypes_integration_creators.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/ctypes_integration_creators.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -35,7 +35,7 @@ return ''.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.ctypes_integration.file_name] class expose_sizeof_t( registration_based.registration_based_t @@ -51,5 +51,5 @@ def _create_impl(self): return 'def( pyplus_conv::register_sizeof( boost::type< %s >() ) )' % self.decl_identifier - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.ctypes_integration.file_name] Modified: pyplusplus_dev/pyplusplus/code_creators/custom.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/custom.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/custom.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -17,7 +17,7 @@ def _create_impl(self): raise NotImplementedError() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class custom_text_t(custom_t): @@ -34,5 +34,5 @@ def _create_impl(self): return self.text - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/embedded_code_repository.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/embedded_code_repository.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/embedded_code_repository.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -14,5 +14,5 @@ def _create_impl(self): return self.__code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/enum.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/enum.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/enum.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -65,7 +65,7 @@ values = self.indent( os.linesep.join( values ) ) return bpl_enum + os.linesep + values - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -80,5 +80,5 @@ result.append( self.indent( '%(name)s = %(value)s' % dict( name=name, value=value ) ) ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/exception_translator.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/exception_translator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/exception_translator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -32,7 +32,7 @@ , 'cls_name' : self.decl_identifier , 'arg_name' : self.declaration.exception_argument_name } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -53,6 +53,6 @@ , 'cls' : self.decl_identifier , 'translator' : self.translator.translator_name } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] \ No newline at end of file Modified: pyplusplus_dev/pyplusplus/code_creators/fields_definition.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -59,5 +59,5 @@ result.append( ']' ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/function_definition.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/function_definition.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/function_definition.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -84,7 +84,7 @@ args = map( ctypes_formatter.as_ctype, self.ftype.arguments_types ) return self.join_arguments( args, group_in_list ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -217,7 +217,7 @@ result.append( self.indent( '.finalize(),', 4 ) ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/global_variable.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/global_variable.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/global_variable.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -31,7 +31,7 @@ self._wrapper = new_wrapper wrapper = property( _get_wrapper, _set_wrapper ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class global_variable_t( global_variable_base_t ): @@ -69,7 +69,7 @@ def __init__(self, variable, wrapper ): global_variable_base_t.__init__( self, variable=variable, wrapper=wrapper ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] def _create_impl( self ): @@ -156,7 +156,7 @@ answer.append( '}' * len( self._create_namespaces() ) ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.array_1.file_name] class global_variable_addressof_t( global_variable_base_t ): @@ -181,7 +181,7 @@ result.append( ' = size_t( boost::addressof( %s ) );' % self.decl_identifier ) return ''.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.ctypes_integration.file_name] class global_variable_reference_t( code_creator.code_creator_t, declaration_based.declaration_based_t ): @@ -196,5 +196,5 @@ , library_var_name=self.top_parent.library_var_name , undecorated_decl_name=self.undecorated_decl_name ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/import_.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/import_.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/import_.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -17,5 +17,5 @@ def _create_impl(self): return 'import %(module)s' % dict( module=os.path.splitext(self._module_name)[0] ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/include.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/include.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/include.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -58,5 +58,5 @@ self.__created_code = self._create_include_directive_code() return self.__created_code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -49,7 +49,7 @@ def _create_impl(self): return "def( %s() )" % self._create_suite_declaration() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return self.configuration.include_files class indexing_suite2_t( registration_based.registration_based_t @@ -118,7 +118,7 @@ answer.append( ';' ) return ''.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return self.declaration.indexing_suite.include_files class value_traits_t( code_creator.code_creator_t @@ -176,5 +176,5 @@ #the value_type return self.generate_value_traits() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return ['indexing_suite/value_traits.hpp'] Modified: pyplusplus_dev/pyplusplus/code_creators/instruction.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/instruction.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/instruction.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -37,5 +37,5 @@ def _generate_description(self): raise NotImplementedError() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/library_reference.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/library_reference.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/library_reference.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -46,7 +46,7 @@ , loader='CDLL' , path=self._library_path ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] if __name__ == '__main__': Modified: pyplusplus_dev/pyplusplus/code_creators/license.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/license.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/license.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -20,7 +20,7 @@ self._text = new_text text = property( _get_text, _set_text ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] def _create_impl(self): Modified: pyplusplus_dev/pyplusplus/code_creators/mem_fun_introduction.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/mem_fun_introduction.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/mem_fun_introduction.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -20,7 +20,7 @@ return os.linesep.join( tmpl ) \ % dict( alias=self.declaration.alias, name=self.undecorated_decl_name ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class vmem_fun_introduction_t(code_creator.code_creator_t, declaration_based.declaration_based_t): @@ -37,7 +37,7 @@ , name=self.undecorated_decl_name , ordinal=0) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class init_introduction_t(code_creator.code_creator_t, declaration_based.declaration_based_t): @@ -52,7 +52,7 @@ return os.linesep.join( tmpl ) \ % dict( alias=self.declaration.alias, name=self.undecorated_decl_name ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class opaque_init_introduction_t(code_creator.code_creator_t, declaration_based.declaration_based_t): @@ -65,7 +65,7 @@ tmpl.append( self.indent('raise RuntimeError( "Unable to create instance of opaque type." )') ) return os.linesep.join( tmpl ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class del_introduction_t(code_creator.code_creator_t, declaration_based.declaration_based_t): @@ -80,5 +80,5 @@ return os.linesep.join( tmpl ) \ % dict( name=self.undecorated_decl_name ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/member_variable.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/member_variable.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/member_variable.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -31,7 +31,7 @@ self._wrapper = new_wrapper wrapper = property( _get_wrapper, _set_wrapper ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): files = [] if self.declaration.getter_call_policies: files.append( self.declaration.getter_call_policies.header_file ) @@ -269,7 +269,7 @@ , 'cls_type' : self.inst_arg_type( has_const=False ) }) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class bit_field_t( member_variable_base_t ): @@ -376,7 +376,7 @@ answer.append( self.BF_SET_TEMPLATE % substitutions ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class array_mv_t( member_variable_base_t ): @@ -426,7 +426,7 @@ answer.append( '}' ) return ''.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] @@ -492,7 +492,7 @@ , 'mem_var_ref' : self.declaration.name } - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.array_1.file_name] @@ -642,7 +642,7 @@ answer.append( self.SET_TEMPLATE % substitutions ) return os.linesep.join( answer ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class member_variable_addressof_t( member_variable_base_t ): @@ -692,5 +692,5 @@ return self._create_s_var() else: return self._create_m_var() - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [code_repository.ctypes_integration.file_name] Modified: pyplusplus_dev/pyplusplus/code_creators/methods_definition.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/methods_definition.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/methods_definition.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -54,5 +54,5 @@ result.append( 'del %s' % self.mem_fun_factory_var_name ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/module.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/module.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/module.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -41,5 +41,5 @@ The license text will always be the first children node. @type: str or L{license_t}""") - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/module_body.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/module_body.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/module_body.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -22,5 +22,5 @@ result.append( "}" ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/name_mappings.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/name_mappings.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/name_mappings.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -32,7 +32,7 @@ result.append( '}' ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/namespace.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/namespace.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/namespace.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -31,7 +31,7 @@ self.__created_code = 'namespace %s = %s;' % ( self.alias, self.full_namespace_name ) return self.__created_code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class namespace_using_t(code_creator.code_creator_t): @@ -53,5 +53,5 @@ self.__created_code = 'using namespace %s;' % self.namespace_name return self.__created_code - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/namespace_as_pyclass.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/namespace_as_pyclass.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/namespace_as_pyclass.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -21,5 +21,5 @@ result.append( compound.compound_t.create_internal_code( self.creators ) ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/opaque_type_registrator.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/opaque_type_registrator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/opaque_type_registrator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -20,5 +20,5 @@ def _create_impl(self): return 'BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID( %s )' % self.decl_identifier - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/properties.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/properties.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/properties.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -145,7 +145,7 @@ result.append( '}' ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -74,7 +74,7 @@ held_type = held_type_t(self.smart_ptr).create( self ) return templates.join( rptp, [ held_type ] ) + '();' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] class smart_pointers_converter_t( registration_based.registration_based_t @@ -115,6 +115,6 @@ to_arg = self._instantiate_smart_ptr( self.target ) return templates.join(implicitly_convertible, [ from_arg, to_arg ] ) + '();' - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] \ No newline at end of file Modified: pyplusplus_dev/pyplusplus/code_creators/typedef_as_pyvar.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/typedef_as_pyvar.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/typedef_as_pyvar.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -18,5 +18,5 @@ % dict( complete_py_name=self.complete_py_name , type=ctypes_formatter.as_ctype( self.declaration.type ) ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] Modified: pyplusplus_dev/pyplusplus/code_creators/unnamed_enum.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/unnamed_enum.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/code_creators/unnamed_enum.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -34,6 +34,6 @@ , algorithm.create_identifier( self, full_name + '::' + name ) ) ) return os.linesep.join( result ) - def _get_system_headers_impl( self ): + def _get_system_files_impl( self ): return [] \ No newline at end of file Modified: pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py =================================================================== --- pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -126,7 +126,7 @@ if isinstance( decl, declarations.namespace_t ): continue - + if isinstance( decl, declarations.class_types ): if decl.opaque: continue @@ -342,7 +342,7 @@ add_include = self.__extmodule.add_include #add system headers - system_headers = self.__extmodule.get_system_headers( recursive=True, unique=True ) + system_headers = self.__extmodule.get_system_files( recursive=True, unique=True, language='c++' ) map( lambda header: add_include( header, user_defined=False, system=True ) , system_headers ) #add user defined header files @@ -353,6 +353,9 @@ self.__dependencies_manager.inform_user() + for cc in code_creators.make_flatten( self.__extmodule ): + cc._code_generator = decl_wrappers.CODE_GENERATOR_TYPES.BOOST_PYTHON + return self.__extmodule def visit_member_function( self ): Modified: pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py =================================================================== --- pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -152,6 +152,9 @@ self.__dependencies_manager.inform_user() + for cc in code_creators.make_flatten( self.module ): + cc._code_generator = decl_wrappers.CODE_GENERATOR_TYPES.CTYPES + return self.module def visit_member_function( self ): @@ -240,18 +243,18 @@ class_ = self.curr_decl for decl in self.curr_decl.decls( recursive=False, allow_empty=True ): if isinstance( decl, declarations.variable_t ): - continue #fields_definition_t class treats them + continue #fields_definition_t class treats them if self.__should_generate_code( decl ): self.curr_decl = decl declarations.apply_visitor( self, decl ) self.curr_decl = class_ #fields definition should be recursive using the visitor #internal classes fields should be defined first - self.__class_defs_ccs.adopt_creator( code_creators.fields_definition_t( self.curr_decl ) ) + self.__class_defs_ccs.adopt_creator( code_creators.fields_definition_t( self.curr_decl ) ) else: cls_intro_cc = self.__class2introduction[ self.curr_decl ] cls_intro_cc.adopt_creator( code_creators.opaque_init_introduction_t( self.curr_decl ) ) - + def visit_enumeration(self): self.__dependencies_manager.add_exported( self.curr_decl ) paretn_cc = None @@ -268,7 +271,7 @@ def visit_variable(self): self.__dependencies_manager.add_exported( self.curr_decl ) self.curr_code_creator.adopt_creator( code_creators.global_variable_reference_t( self.curr_decl ) ) - + def visit_namespace(self ): if not self.__contains_exported( self.curr_decl ): return Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -179,7 +179,7 @@ dependend_on_headers = [] for creator in creators: - dependend_on_headers.extend( creator.get_system_headers( recursive=True ) ) + dependend_on_headers.extend( creator.get_system_files( recursive=True, language='C++' ) ) dependend_on_headers = unique_headers( map( normalize, dependend_on_headers ) ) Modified: pyplusplus_dev/pyplusplus/file_writers/writer.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/writer.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/file_writers/writer.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -66,18 +66,11 @@ def write_code_repository(self, dir): """creates files defined in L{code_repository} package""" - system_headers = self.extmodule.get_system_headers( recursive=True ) + system_files = self.extmodule.get_system_files( recursive=True ) for cr in code_repository.all: - if cr.file_name in system_headers: + if cr.file_name in system_files: #check whether file from code repository is used self.write_file( os.path.join( dir, cr.file_name ), cr.code ) - #Python files are a special case - if isinstance( self.extmodule, code_creators.bpmodule_t ): - self.write_file( os.path.join( dir, code_repository.named_tuple.file_name ) - , code_repository.named_tuple.code ) - else: - self.write_file( os.path.join( dir, code_repository.ctypes_utils.file_name ) - , code_repository.ctypes_utils.code ) @staticmethod def write_file( fpath, content, files_sum_repository=None, encoding='ascii' ): Modified: pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py =================================================================== --- pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2009-01-19 19:09:33 UTC (rev 1591) +++ pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2009-01-19 20:13:07 UTC (rev 1592) @@ -86,6 +86,8 @@ , compilation_mode , cache , indexing_suite_version) + self.global_ns.decls(recursive=True, allow_empty=True)._code_generator = decl_wrappers.CODE_GENERATOR_TYPES.CTYPES + self.__code_creator = None if optimize_queries: self.run_query_optimizer() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |