Revision: 485
Author: allenb
Date: 2006-08-28 14:34:04 -0700 (Mon, 28 Aug 2006)
ViewCVS: http://svn.sourceforge.net/pygccxml/?rev=485&view=rev
Log Message:
-----------
Removed module caching as per Roman's request.
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/module_builder/builder.py
Modified: pyplusplus_dev/pyplusplus/module_builder/builder.py
===================================================================
--- pyplusplus_dev/pyplusplus/module_builder/builder.py 2006-08-28 19:45:50 UTC (rev 484)
+++ pyplusplus_dev/pyplusplus/module_builder/builder.py 2006-08-28 21:34:04 UTC (rev 485)
@@ -16,9 +16,6 @@
from pyplusplus import code_creators
from pyplusplus import module_creator as mcreator_package
-import cPickle, md5, os.path, gzip
-from pygccxml.parser.declarations_cache import file_signature, configuration_signature
-
class module_builder_t(object):
"""
This class provides users with simple and intuitive interface to Py++
@@ -39,8 +36,7 @@
, optimize_queries=True
, ignore_gccxml_output=False
, indexing_suite_version=1
- , cflags=""
- , module_cache=None):
+ , cflags=""):
"""
@param files: list of files, declarations from them you want to export
@type files: list of strings or L{file_configuration_t} instances
@@ -60,9 +56,6 @@
@param undefine_symbols: list of strings
@param cflags: Raw string to be added to gccxml command line.
-
- @param module_cache: Name of a file to use as a module cache. This will cache
- the processing done in __init__.
"""
object.__init__( self )
self.logger = _logging_.loggers.module_builder
@@ -84,55 +77,15 @@
, parser.project_reader_t.get_os_file_names( files ) )
tmp = map( lambda file_: os.path.split( file_ )[0], self.__parsed_files )
self.__parsed_dirs = filter( None, tmp )
-
- self.__global_ns = None
-
- # If we have a module_cache filename
- # - Compute signature and check it against file
- # - If matches, load it
- if module_cache:
- sig = md5.new()
- sig.update(configuration_signature(gccxml_config))
- for f in files:
- sig.update(file_signature(f))
- cur_digest = sig.hexdigest()
- if os.path.exists(module_cache):
- self.logger.info("Attempting to loading module cache file: %s"%module_cache)
- cache_file = file(module_cache,'rb')
- cache_digest = cPickle.load(cache_file)
- if (cur_digest == cache_digest):
- load_start_time = time.time()
- self.logger.info(" Signatures matched, loading data.")
- self.__global_ns = cPickle.load(cache_file)
- self.__code_creator = None
- self.logger.info(" Loading complete. %ss"%(time.time()-load_start_time))
- else:
- self.logger.info(" Signatures did not match. Ignoring cache.")
- cache_file.close()
-
- # If didn't load global_ns from cache
- # - Parse and optimize it
- # - Then save to cache if requested
- if not self.__global_ns:
- print "Parsing data"
- self.__global_ns = self.__parse_declarations( files
- , gccxml_config
- , compilation_mode
- , cache
- , indexing_suite_version)
- self.__code_creator = None
- if optimize_queries:
- print "Running optimizer"
- self.run_query_optimizer()
-
- if module_cache:
- print "Writing module cache... ",
- cache_file = file(module_cache,'wb')
- cPickle.dump(cur_digest, cache_file, cPickle.HIGHEST_PROTOCOL)
- cPickle.dump(self.__global_ns, cache_file, cPickle.HIGHEST_PROTOCOL)
- cache_file.close()
- print " done."
+ self.__global_ns = self.__parse_declarations( files
+ , gccxml_config
+ , compilation_mode
+ , cache
+ , indexing_suite_version)
+ self.__code_creator = None
+ if optimize_queries:
+ self.run_query_optimizer()
self.__declarations_code_head = []
self.__declarations_code_tail = []
@@ -140,7 +93,6 @@
self.__registrations_code_head = []
self.__registrations_code_tail = []
-
def _get_global_ns( self ):
return self.__global_ns
global_ns = property( _get_global_ns, doc="reference to global namespace" )
@@ -198,7 +150,7 @@
if not found:
decl.exclude()
- def __apply_decls_defaults(self, decls):
+ def __apply_decls_defaults(self, decls):
flatten_decls = decls_package.make_flatten( decls )
self.__filter_by_location( flatten_decls )
call_policies_resolver = mcreator_package.built_in_resolver_t()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|