[pygccxml-commit] SF.net SVN: pygccxml:[1682] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2009-02-15 20:51:25
|
Revision: 1682 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1682&view=rev Author: roman_yakovenko Date: 2009-02-15 20:51:18 +0000 (Sun, 15 Feb 2009) Log Message: ----------- move doc_extractor to module_t class Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/module.py pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py pyplusplus_dev/pyplusplus/file_writers/writer.py pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py Modified: pyplusplus_dev/pyplusplus/code_creators/module.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/module.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/code_creators/module.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -71,8 +71,18 @@ return set( decls ) + def update_documentation( self, doc_extractor ): + if not doc_extractor: + return + visited = set() + for cc in algorithm.make_flatten( self ): + if not isinstance( cc, declaration_based.declaration_based_t ): + continue + if id( cc.declaration ) in visited: + continue + cc.declaration.documentation = doc_extractor( cc.declaration ) + visited.add( cc.declaration ) - class bpmodule_t(module_t): """This class represents the source code for the entire extension module. @@ -116,8 +126,8 @@ """Return reference to :class:`code_creators.module_body_t` code creator""" if None is self.__body: found = algorithm.creator_finder.find_by_class_instance( what=module_body.module_body_t - , where=self.creators - , recursive=False ) + , where=self.creators + , recursive=False ) if found: self.__body = found[0] return self.__body Modified: pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py =================================================================== --- pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -37,8 +37,7 @@ , call_policies_resolver_=None , types_db=None , target_configuration=None - , enable_indexing_suite=True - , doc_extractor=None ): + , enable_indexing_suite=True ): """Constructor. :param decls: Declarations that should be exposed in the final module. @@ -47,7 +46,6 @@ :param call_policies_resolver_: Callable that takes one declaration (calldef_t) as input and returns a call policy object which should be used for this declaration. :param types_db: ...todo... :param target_configuration: A target configuration object can be used to customize the generated source code to a particular compiler or a particular version of Boost.Python. - :param doc_extractor: callable, that takes as argument declaration reference and returns documentation string :param already_exposed_dbs: list of files/directories other modules, this module depends on, generated their code too :type decls: list of declaration_t :type module_name: str @@ -55,7 +53,6 @@ :type call_policies_resolver_: callable :type types_db: L:class:`types_database.types_database_t` :type target_configuration: :class:`code_creators.target_configuration_t` - :type doc_extractor: callable :type already_exposed_dbs: list of strings """ declarations.decl_visitor_t.__init__(self) @@ -91,7 +88,7 @@ self.__opaque_types_manager = opaque_types_manager.manager_t( self.__extmodule ) self.__dependencies_manager = dependencies_manager.manager_t(self.decl_logger) - prepared_decls = self._prepare_decls( decls, doc_extractor ) + prepared_decls = self._prepare_decls( decls ) self.__decls = sort_algorithms.sort( prepared_decls ) self.curr_code_creator = self.__module_body @@ -115,7 +112,7 @@ for msg in readme: self.decl_logger.warn( "%s;%s" % ( decl, msg ) ) - def _prepare_decls( self, decls, doc_extractor ): + def _prepare_decls( self, decls ): to_be_exposed = [] for decl in declarations.make_flatten( decls ): if decl.ignore: @@ -152,9 +149,6 @@ #if isinstance( decl, declarations.variable_t ): #self.__types_db.update( decl ) - if doc_extractor: - decl.documentation = doc_extractor( decl ) - self.__print_readme( decl ) return to_be_exposed Modified: pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py =================================================================== --- pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -19,8 +19,7 @@ def __init__( self , global_ns , library_path - , exported_symbols - , doc_extractor=None ): + , exported_symbols ): declarations.decl_visitor_t.__init__(self) self.logger = _logging_.loggers.module_builder self.decl_logger = _logging_.loggers.declarations @@ -71,7 +70,7 @@ return decl in self.__exported_decls return True - #~ def __prepare_decls( self, global_ns, doc_extractor ): + #~ def __prepare_decls( self, global_ns ): #~ to_be_exposed = [] #~ for decl in declarations.make_flatten( global_ns ): #~ if decl.ignore: @@ -90,9 +89,6 @@ #~ #leave only declarations defined under namespace, but remove namespaces #~ to_be_exposed.append( decl ) - #~ if doc_extractor: - #~ decl.documentation = doc_extractor( decl ) - #~ self.__print_readme( decl ) #~ return to_be_exposed Modified: pyplusplus_dev/pyplusplus/file_writers/writer.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/writer.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/file_writers/writer.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -109,9 +109,9 @@ start_time = time.clock() fcontent_new = [] if os.path.splitext( fpath )[1] == '.py': - fcontent_new.append( '# This file has been generated by `Py++`.' ) + fcontent_new.append( '# This file has been generated by Py++.' ) else: - fcontent_new.append( '// This file has been generated by `Py++`.' ) + fcontent_new.append( '// This file has been generated by Py++.' ) fcontent_new.append( os.linesep * 2 ) fcontent_new.append( content ) fcontent_new.append( os.linesep ) #keep gcc happy Modified: pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py =================================================================== --- pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -237,10 +237,10 @@ , call_policies_resolver_ , types_db , target_configuration - , enable_indexing_suite - , doc_extractor) + , enable_indexing_suite ) self.__code_creator = creator.create() self.__code_creator.replace_included_headers(self.__parsed_files) + self.__code_creator.update_documentation( doc_extractor ) return self.__code_creator @property Modified: pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py =================================================================== --- pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-02-15 09:41:59 UTC (rev 1681) +++ pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-02-15 20:51:18 UTC (rev 1682) @@ -101,9 +101,9 @@ def build_code_creator( self, library_path, doc_extractor=None ): creator = creators_factory.ctypes_creator_t( self.global_ns , library_path - , self.__blob2decl - , doc_extractor) + , self.__blob2decl ) self.__code_creator = creator.create() + self.__code_creator.update_documentation( doc_extractor ) return self.__code_creator @property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |