[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.
|