parameters: (self,pattern,ns_table,ns_search=[],
                  ignore_case=False,show_all=False, *, list_types=False)
docstring: Search namespaces with wildcards for objects.
  
          Arguments:
  
          - pattern: string containing shell-like wildcards to use in namespace
            searches and optionally a type specification to narrow the search to
            objects of that type.
  
          - ns_table: dict of name->namespaces for search.
  
          Optional arguments:
  
            - ns_search: list of namespace names to include in search.
  
            - ignore_case(False): make the search case-insensitive.
  
            - show_all(False): show all names, including those starting with
              underscores.
              
            - list_types(False): list all available object types for object matching.
docstring_summary: Search namespaces with wildcards for objects.
docstring_tokens: Search namespaces with wildcards for objects .
function: def psearch(self,pattern,ns_table,ns_search=[],
                  ignore_case=False,show_all=False, *, list_types=False):
          """Search namespaces with wildcards for objects.
  
          Arguments:
  
          - pattern: string containing shell-like wildcards to use in namespace
            searches and optionally a type specification to narrow the search to
            objects of that type.
  
          - ns_table: dict of name->namespaces for search.
  
          Optional arguments:
  
            - ns_search: list of namespace names to include in search.
  
            - ignore_case(False): make the search case-insensitive.
  
            - show_all(False): show all names, including those starting with
              underscores.
              
            - list_types(False): list all available object types for object matching.
          """
          #print 'ps pattern:<%r>' % pattern # dbg
  
          # defaults
          type_pattern = 'all'
          filter = ''
  
          # list all object types
          if list_types:
              page.page('\n'.join(sorted(typestr2type)))
              return
  
          cmds = pattern.split()
          len_cmds  =  len(cmds)
          if len_cmds == 1:
              # Only filter pattern given
              filter = cmds[0]
          elif len_cmds == 2:
              # Both filter and type specified
              filter,type_pattern = cmds
          else:
              raise ValueError('invalid argument string for psearch: <%s>' %
                               pattern)
  
          # filter search namespaces
          for name in ns_search:
              if name not in ns_table:
                  raise ValueError('invalid namespace <%s>. Valid names: %s' %
                                   (name,ns_table.keys()))
  
          #print 'type_pattern:',type_pattern # dbg
          search_result, namespaces_seen = set(), set()
          for ns_name in ns_search:
              ns = ns_table[ns_name]
              # Normally, locals and globals are the same, so we just check one.
              if id(ns) in namespaces_seen:
                  continue
              namespaces_seen.add(id(ns))
              tmp_res = list_namespace(ns, type_pattern, filter,
                                      ignore_case=ignore_case, show_all=show_all)
              search_result.update(tmp_res)
  
          page.page('\n'.join(sorted(search_result)))
function_tokens: def psearch ( self , pattern , ns_table , ns_search = [ ] , ignore_case = False , show_all = False , * , list_types = False ) : #print 'ps pattern:<%r>' % pattern # dbg # defaults type_pattern = 'all' filter = '' # list all object types if list_types : page . page ( '\n' . join ( sorted ( typestr2type ) ) ) return cmds = pattern . split ( ) len_cmds = len ( cmds ) if len_cmds == 1 : # Only filter pattern given filter = cmds [ 0 ] elif len_cmds == 2 : # Both filter and type specified filter , type_pattern = cmds else : raise ValueError ( 'invalid argument string for psearch: <%s>' % pattern ) # filter search namespaces for name in ns_search : if name not in ns_table : raise ValueError ( 'invalid namespace <%s>. Valid names: %s' % ( name , ns_table . keys ( ) ) ) #print 'type_pattern:',type_pattern # dbg search_result , namespaces_seen = set ( ) , set ( ) for ns_name in ns_search : ns = ns_table [ ns_name ] # Normally, locals and globals are the same, so we just check one. if id ( ns ) in namespaces_seen : continue namespaces_seen . add ( id ( ns ) ) tmp_res = list_namespace ( ns , type_pattern , filter , ignore_case = ignore_case , show_all = show_all ) search_result . update ( tmp_res ) page . page ( '\n' . join ( sorted ( search_result ) ) )