code: def reload_repo_cache(i):
      
  
      global cache_repo_uoa, cache_repo_info, paths_repos_all, cache_repo_init
  
      if i.get('force','')=='yes': # pragma: no cover
         cache_repo_init=False
         paths_repos_all=[]
  
      if not cache_repo_init:
         # Load repo UOA -> UID disambiguator
         r=load_json_file({'json_file':work['dir_cache_repo_uoa']})
         if r['return']!=16 and r['return']>0: return r
         cache_repo_uoa=r.get('dict',{})
  
         # Load cached repo info
         r=load_json_file({'json_file':work['dir_cache_repo_info']})
         if r['return']!=16 and r['return']>0: return r
         cache_repo_info=r.get('dict',{})
  
         # Prepare all paths
         for q in cache_repo_info:
             qq=cache_repo_info[q]
             dd=qq['dict']
             p=dd.get('path','')
             if p!='':
                paths_repos_all.append({'path':os.path.normpath(p),
                                        'repo_uoa':qq['data_uoa'],
                                        'repo_uid':qq['data_uid'],
                                        'repo_alias':qq['data_alias']})
  
      cache_repo_init=True
  
      return {'return':0}
docs: Input:  {
                (force)      - if 'yes', force recaching
              }
  
      Output: {
                return       - return code =  0, if successful
                                           >  0, if error
                (error)      - error text if return > 0
              }