#@+leo-ver=5-thin
#@+node:ekr.20101110094759.5843: * @file mod_speedups.py
''' Experimental speedups
Various optimizations. Use at your own risk.
If stuff breaks, disable this plugin before reporting bugs.
'''
# By VMV.
import leo.core.leoGlobals as g
import os.path
#@+others
#@+node:ville.20090804155017.7594: ** init
[docs]def init ():
'''Return True if the plugin has loaded successfully.'''
return True
#@+node:ville.20090804155017.7596: ** g.toUnicodeFileEncoding
[docs]def speedup_toUnicodeFileEncoding(s, arg = None):
#if g:
#print s,g.callers(10)
return s
g.toUnicodeFileEncoding = speedup_toUnicodeFileEncoding
#@+node:ville.20090804155017.12332: ** os.path shortcuts
g.os_path_basename = os.path.basename
g.os_path_split = os.path.split
g.os_path_splitext = os.path.splitext
#g.os_path_expanduser = os.path.expanduser
g.os_path_abspath = os.path.abspath
#g.os_path_join = os.path.join
g.os_path_normpath = os.path.normpath
g.os_path_exists = os.path.exists
#g.os_path_finalize = os.path.abspath
#@+node:ville.20090804155017.12333: ** os_path_finalize caching
os_path_finalize_orig = g.os_path_finalize
os_path_finalize_join_orig = g.os_path_finalize_join
_finalized_cache = {}
_finalized_join_cache = {}
_expanduser_cache = {}
[docs]def os_path_finalize_cached (path,**keys):
res = _finalized_cache.get(path)
if res:
return res
res = os_path_finalize_orig(path, **keys)
_finalized_cache[path] = res
return res
[docs]def os_path_finalize_join_cached (*args,**keys):
res = _finalized_join_cache.get(args)
if res:
#print "cache hit", args
return res
res = os_path_finalize_join_orig(*args, **keys)
_finalized_join_cache[args] = res
return res
[docs]def os_path_expanduser_cached(path, encoding = None):
res = _expanduser_cache.get(path)
if res:
#print "cache hit", path
return res
res = os.path.expanduser(path)
_expanduser_cache[path] = res
return res
[docs]def os_path_join_speedup(*args, **kw):
path = os.path.join(*args)
return path
g.os_path_finalize = os_path_finalize_cached
g.os_path_finalize_join = os_path_finalize_join_cached
g.os_path_expanduser = os_path_expanduser_cached
#g.os_path_join = os_path_join_speedup
#@-others
#@@language python
#@@tabwidth -4
#@-leo