Thread: [pygccxml-commit] SF.net SVN: pygccxml: [541] pyplusplus_dev/pyplusplus/file_writers/ multiple_file
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2006-09-14 05:31:19
|
Revision: 541 http://svn.sourceforge.net/pygccxml/?rev=541&view=rev Author: roman_yakovenko Date: 2006-09-13 22:31:09 -0700 (Wed, 13 Sep 2006) Log Message: ----------- fixing include guards to be according to standard Modified Paths: -------------- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2006-09-14 05:23:14 UTC (rev 540) +++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2006-09-14 05:31:09 UTC (rev 541) @@ -75,12 +75,12 @@ @rtype: str """ tmpl = os.linesep.join([ - "#ifndef __%(file_name)s_hpp__pyplusplus_wrapper__" - , "#define __%(file_name)s_hpp__pyplusplus_wrapper__" + "#ifndef %(file_name)s_hpp__pyplusplus_wrapper" + , "#define %(file_name)s_hpp__pyplusplus_wrapper" , '' , "%(code)s" , '' - , "#endif//__%(file_name)s_hpp__pyplusplus_wrapper__" ]) + , "#endif//%(file_name)s_hpp__pyplusplus_wrapper" ]) content = '' if self.extmodule.license: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2006-09-26 08:41:43
|
Revision: 587 http://svn.sourceforge.net/pygccxml/?rev=587&view=rev Author: roman_yakovenko Date: 2006-09-26 01:41:38 -0700 (Tue, 26 Sep 2006) Log Message: ----------- fixing bug: calculation of unique associated creators was fixed Modified Paths: -------------- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2006-09-26 08:41:35 UTC (rev 586) +++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2006-09-26 08:41:38 UTC (rev 587) @@ -61,6 +61,15 @@ @type: str """ ) + def get_unique_creators( self, creators ): + unique_creators = [] + unique_creator_ids = set() + for creator in creators: + if not id( creator ) in unique_creator_ids: + unique_creator_ids.add( id( creator ) ) + unique_creators.append( creator ) + return unique_creators + def associated_decl_creators( self, creator ): """ references to all class declaration code creators. """ if not isinstance( creator, code_creators.registration_based_t ): @@ -70,23 +79,17 @@ internal_creators = [] if isinstance( creator, code_creators.compound_t ): - internal_creators.extend( + internal_creators.extend( filter( lambda creator: isinstance( creator, code_creators.registration_based_t ) , code_creators.make_flatten( creator.creators ) ) ) - + map( lambda internal_creator: associated_creators.extend( internal_creator.associated_decl_creators ) , internal_creators ) #now associated_creators contains all code creators associated with the creator #We should leave only creators, defined in the global namespace associated_creators = filter( lambda associated_creator: associated_creator.parent is self.extmodule , associated_creators ) - unique_associated_creators = [] - unique_associated_creator_ids = set() - for acreator in associated_creators: - if not id( acreator ) in unique_associated_creator_ids: - unique_associated_creator_ids.add( id( acreator ) ) - unique_associated_creators.append( acreator ) - return unique_associated_creators + return associated_creators def create_function_code( self, function_name ): return "void %s();" % function_name @@ -187,6 +190,7 @@ declaration_creators = [] for rc in registration_creators: declaration_creators.extend( self.associated_decl_creators( rc ) ) + declaration_creators = self.get_unique_creators( declaration_creators ) creators = registration_creators + declaration_creators This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2007-06-26 05:35:54
|
Revision: 1082 http://svn.sourceforge.net/pygccxml/?rev=1082&view=rev Author: roman_yakovenko Date: 2007-06-25 22:31:20 -0700 (Mon, 25 Jun 2007) Log Message: ----------- small temporal patch to fix non-generated value traits header file Modified Paths: -------------- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2007-06-24 05:55:32 UTC (rev 1081) +++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2007-06-26 05:31:20 UTC (rev 1082) @@ -46,7 +46,10 @@ self.__predefined_include_creators \ = filter( lambda creator: isinstance( creator, code_creators.include_t ) , self.extmodule.creators ) + self.__value_traits = filter( lambda x: isinstance(x, code_creators.value_traits_t) + , self.extmodule.creators ) + def write_file( self, fpath, content ): self.written_files.append( fpath ) writer.writer_t.write_file( fpath, content, self.files_sum_repository, self.encoding ) @@ -130,6 +133,16 @@ return None if not isinstance( code_creator.declaration.indexing_suite, decl_wrappers.indexing_suite2_t ): return None + + #sometimes, for some reason I expose containers as regular classes ( hash_map ) + #and in this case I do generate include to + classes = ( code_creators.indexing_suite1_t, code_creators.indexing_suite2_t ) + for cont_code_creator in code_creator.creators: + if isinstance( cont_code_creator, classes ): + break + else: + return None + try: element_type = code_creator.declaration.indexing_suite.element_type class_traits = declarations.class_traits @@ -365,9 +378,7 @@ self.extmodule.do_include_dirs_optimization() - value_traits_classes = filter( lambda x: isinstance(x, code_creators.value_traits_t ) - , self.extmodule.creators ) - map( self.split_value_traits, value_traits_classes ) + map( self.split_value_traits, self.__value_traits ) # Obtain a list of all class creators... class_creators = filter( lambda x: isinstance(x, ( code_creators.class_t, code_creators.class_declaration_t ) ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |