code: def search_string_filter(i):
      
  
      # To be fast, load directly
      p=i['path']
  
      skip='yes'
  
      ss=i.get('search_string','')
      if ss=='':
         skip='no'
      else:
         ic=i.get('ignore_case','')
  
         p1=os.path.join(p,cfg['subdir_ck_ext'],cfg['file_meta'])
         if not os.path.isfile(p1):
            p1=os.path.join(p,cfg['subdir_ck_ext'],cfg['file_meta_old'])
            if not os.path.isfile(p1):
               return {'return':0, 'skip':'yes'}
  
         r=load_json_file({'json_file':p1})
         if r['return']>0: return r
         d=r['dict']
  
         # Check directly
         rx=find_string_in_dict_or_list({'dict':d, 'search_string':ss, 'ignore_case':ic})
         if rx['return']>0: return rx
         found=rx['found']
         if found=='yes': skip='no'
  
      return {'return':0, 'skip':skip}
docs: Input:  {
                repo_uoa             - repo UOA
                module_uoa           - module UOA
                data_uoa             - data UOA
                path                 - path  
  
                (search_string)      - search with expressions *?
              }
  
      Output: {
                return       - return code =  0, if successful
                                           >  0, if error
                (error)      - error text if return > 0
  
                lst          - [{'repo_uoa', 'repo_uid',
                                 'module_uoa', 'module_uid', 
                                 'data_uoa','data_uid',
                                 'path'}]
              }