[pygccxml-commit] SF.net SVN: pygccxml:[1500] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-12-26 07:53:06
|
Revision: 1500 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1500&view=rev Author: roman_yakovenko Date: 2008-12-26 07:53:03 +0000 (Fri, 26 Dec 2008) Log Message: ----------- small refactoring before introducing ctypes code generator Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/__init__.py pyplusplus_dev/pyplusplus/code_creators/include.py pyplusplus_dev/pyplusplus/code_creators/module.py pyplusplus_dev/pyplusplus/creators_factory/creator.py pyplusplus_dev/pyplusplus/file_writers/balanced_files.py pyplusplus_dev/pyplusplus/file_writers/class_multiple_files.py pyplusplus_dev/pyplusplus/file_writers/multiple_files.py pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py Modified: pyplusplus_dev/pyplusplus/code_creators/__init__.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/__init__.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/code_creators/__init__.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -116,7 +116,7 @@ from license import license_t -from module import module_t +from module import bpmodule_t from smart_pointers import held_type_t from smart_pointers import smart_pointers_converter_t Modified: pyplusplus_dev/pyplusplus/code_creators/include.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/include.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/code_creators/include.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -13,7 +13,7 @@ def __init__( self, header, user_defined=False, system=False ): code_creator.code_creator_t.__init__(self) self._header = include_directories.include_directories_t.normalize( header ) - self._include_dirs_optimization = None #This parameter will be set from module_t.create function + self._include_dirs_optimization = None #This parameter will be set from bpmodule_t.create function self._user_defined = user_defined self._system = system self.__created_code = None Modified: pyplusplus_dev/pyplusplus/code_creators/module.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/module.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/code_creators/module.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -7,15 +7,16 @@ import custom import license import include -import namespace +import namespace import compound import algorithm +import base_module import module_body import declaration_based import include_directories from pygccxml import utils -class module_t(compound.compound_t): +class bpmodule_t(base_module.base_module_t): """This class represents the source code for the entire extension module. The root of the code creator tree is always a module_t object. @@ -23,20 +24,14 @@ def __init__(self, global_ns): """Constructor. """ - compound.compound_t.__init__(self) + base_module.base_module_t.__init__(self, global_ns) self.__body = None - self.__global_ns = global_ns - - @property - def global_ns(self): - "reference to global_ns ( namespace_t ) declaration" - return self.__global_ns - + def _get_include_dirs(self): - include_dirs = algorithm.creator_finder.find_by_class_instance( + include_dirs = algorithm.creator_finder.find_by_class_instance( what=include_directories.include_directories_t , where=self.creators - , recursive=False) + , recursive=False) if 0 == len( include_dirs ): include_dirs = include_directories.include_directories_t() if self.license: @@ -46,9 +41,9 @@ return include_dirs elif 1 == len( include_dirs ): return include_dirs[0] - else: + else: assert not "only single instance of include_directories_t should exist" - + def _get_std_directories(self): include_dirs = self._get_include_dirs() return include_dirs.std @@ -59,7 +54,7 @@ return include_dirs.user_defined user_defined_directories = property( _get_user_defined_directories ) - @property + @property def body(self): """Return reference to L{module_body_t} code creator""" if None is self.__body: @@ -70,23 +65,6 @@ self.__body = found[0] return self.__body - def _get_license( self ): - if isinstance( self.creators[0], license.license_t ): - return self.creators[0] - return None - - def _set_license( self, license_text ): - if not isinstance( license_text, license.license_t ): - license_inst = license.license_t( license_text ) - if isinstance( self.creators[0], license.license_t ): - self.remove_creator( self.creators[0] ) - self.adopt_creator( license_inst, 0 ) - license = property( _get_license, _set_license, - doc="""License text. - - The license text will always be the first children node. - @type: str or L{license_t}""") - def last_include_index(self): """Return the children index of the last L{include_t} object. @@ -109,9 +87,9 @@ to_be_removed.append( creator ) elif isinstance( creator, module_body.module_body_t ): break - + for creator in to_be_removed: - if creator.is_system: + if creator.is_system: if not leave_system_headers: self.remove_creator( creator ) elif creator.is_user_defined: @@ -146,9 +124,6 @@ for include_creator in includes: include_creator.include_dirs_optimization = include_dirs - def _get_system_headers_impl( self ): - return [] - def _create_impl(self): self.do_include_dirs_optimization() index = 0 @@ -159,19 +134,19 @@ else: includes.append( self.creators[index].create() ) code = compound.compound_t.create_internal_code( self.creators[index:] ) - code = self.unindent(code) + code = self.unindent(code) return os.linesep.join( includes ) + 2 * os.linesep + code + os.linesep - + def add_include( self, header, user_defined=True, system=False ): creator = include.include_t( header=header, user_defined=user_defined, system=system ) self.adopt_include( creator ) - + def add_namespace_usage( self, namespace_name ): self.adopt_creator( namespace.namespace_using_t( namespace_name ) , self.last_include_index() + 1 ) def add_namespace_alias( self, alias, full_namespace_name ): - self.adopt_creator( namespace.namespace_alias_t( + self.adopt_creator( namespace.namespace_alias_t( alias=alias , full_namespace_name=full_namespace_name ) , self.last_include_index() + 1 ) @@ -179,21 +154,21 @@ def adopt_declaration_creator( self, creator ): self.adopt_creator( creator, self.creators.index( self.body ) ) - def add_declaration_code( self, code, position ): + def add_declaration_code( self, code, position ): self.adopt_declaration_creator( custom.custom_text_t( code ) ) - - @utils.cached + + @utils.cached def specially_exposed_decls(self): - """list of exposed declarations, which were not ``included``, but still + """list of exposed declarations, which were not ``included``, but still were exposed. For example, std containers. """ decls = set() #select all declaration based code creators ccs = filter( lambda cc: isinstance( cc, declaration_based.declaration_based_t ) , algorithm.make_flatten_list( self ) ) - #leave only "ignored" + #leave only "ignored" ccs = filter( lambda cc: cc.declaration.ignore == True, ccs ) - + decls = map( lambda cc: cc.declaration, ccs ) - + return set( decls ) Modified: pyplusplus_dev/pyplusplus/creators_factory/creator.py =================================================================== --- pyplusplus_dev/pyplusplus/creators_factory/creator.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/creators_factory/creator.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -81,7 +81,7 @@ self.__types_db = types_database.types_database_t() global_ns = declarations.get_global_namespace(decls) - self.__extmodule = code_creators.module_t( global_ns ) + self.__extmodule = code_creators.bpmodule_t( global_ns ) if boost_python_ns_name: bp_ns_alias = code_creators.namespace_alias_t( alias=boost_python_ns_name , full_namespace_name='::boost::python' ) Modified: pyplusplus_dev/pyplusplus/file_writers/balanced_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/balanced_files.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/file_writers/balanced_files.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -3,7 +3,7 @@ # accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -"""defines a class that writes L{code_creators.module_t} to multiple files""" +"""defines a class that writes L{code_creators.bpmodule_t} to multiple files""" import os import math @@ -34,7 +34,7 @@ """Constructor. @param extmodule: The root of a code creator tree - @type extmodule: module_t + @type extmodule: bpmodule_t @param directory_path: The output directory where the source files are written @type directory_path: str Modified: pyplusplus_dev/pyplusplus/file_writers/class_multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/class_multiple_files.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/file_writers/class_multiple_files.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -3,7 +3,7 @@ # accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -"""defines a class that writes L{code_creators.module_t} to multiple files, the class +"""defines a class that writes L{code_creators.bpmodule_t} to multiple files, the class also splits huge C++ classes to few source files """ Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -3,7 +3,7 @@ # accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -"""defines a class that writes L{code_creators.module_t} to multiple files""" +"""defines a class that writes L{code_creators.bpmodule_t} to multiple files""" import os import writer @@ -26,7 +26,7 @@ """Constructor. @param extmodule: The root of a code creator tree - @type extmodule: module_t + @type extmodule: bpmodule_t @param directory_path: The output directory where the source files are written @type directory_path: str Modified: pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py =================================================================== --- pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/module_builder/boost_python_builder.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -208,7 +208,7 @@ , enable_indexing_suite=True , doc_extractor=None): """ - Creates L{module_t} code creator. + Creates L{bpmodule_t} code creator. @param module_name: module name @type module_name: string @@ -248,7 +248,7 @@ @property def code_creator( self ): - "reference to L{code_creators.module_t} instance" + "reference to L{code_creators.bpmodule_t} instance" if not self.__code_creator: raise RuntimeError( "self.module is equal to None. Did you forget to call build_code_creator function?" ) return self.__code_creator Modified: pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py =================================================================== --- pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2008-12-25 11:46:00 UTC (rev 1499) +++ pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2008-12-26 07:53:03 UTC (rev 1500) @@ -107,7 +107,7 @@ @property def code_creator( self ): - "reference to L{code_creators.module_t} instance" + "reference to L{code_creators.ctypes_module_t} instance" if not self.__code_creator: raise RuntimeError( "self.module is equal to None. Did you forget to call build_code_creator function?" ) return self.__code_creator This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |