def cache_project(cls):
 projects = dict()
 resources = dict()
 def get_ctx(*args, **kwargs):
  path = env.curbuf.name
  if resources.get(path):
   return resources.get(path)
  project_path = env.var('g:pymode_rope_project_root')
  if (not project_path):
   project_path = env.curdir
   env.debug('Look ctx', project_path)
   if env.var('g:pymode_rope_lookup_project', True):
    project_path = look_ropeproject(project_path)
  if (not os.path.exists(project_path)):
   env.error(('Rope project root not exist: %s' % project_path))
   ctx = None
  else:
   ctx = projects.get(project_path)
  if (not ctx):
   projects[project_path] = ctx = cls(path, project_path)
  resources[path] = ctx
  return ctx
 return get_ctx

def cache_project ( cls ) : projects = dict ( ) resources = dict ( ) def get_ctx ( * args , ** kwargs ) : path = env . curbuf . name if resources . get ( path ) : return resources . get ( path ) project_path = env . var ( 'g:pymode_rope_project_root' ) if ( not project_path ) : project_path = env . curdir env . debug ( 'Look ctx' , project_path ) if env . var ( 'g:pymode_rope_lookup_project' , True ) : project_path = look_ropeproject ( project_path ) if ( not os . path . exists ( project_path ) ) : env . error ( ( 'Rope project root not exist: %s' % project_path ) ) ctx = None else : ctx = projects . get ( project_path ) if ( not ctx ) : projects [ project_path ] = ctx = cls ( path , project_path ) resources [ path ] = ctx return ctx return get_ctx
cache projects .