def list_namespace(namespace, type_pattern, filter, ignore_case=False, show_all=False):
 pattern_list = filter.split('.')
 if (len(pattern_list) == 1):
  return filter_ns(namespace, name_pattern=pattern_list[0], type_pattern=type_pattern, ignore_case=ignore_case, show_all=show_all)
 else:
  filtered = filter_ns(namespace, name_pattern=pattern_list[0], type_pattern='all', ignore_case=ignore_case, show_all=show_all)
  results = {}
  for (name, obj) in filtered.items():
   ns = list_namespace(dict_dir(obj), type_pattern, '.'.join(pattern_list[1:]), ignore_case=ignore_case, show_all=show_all)
   for (inner_name, inner_obj) in ns.items():
    results[('%s.%s' % (name, inner_name))] = inner_obj
  return results

def list_namespace ( namespace , type_pattern , filter , ignore_case = False , show_all = False ) : pattern_list = filter . split ( '.' ) if ( len ( pattern_list ) == 1 ) : return filter_ns ( namespace , name_pattern = pattern_list [ 0 ] , type_pattern = type_pattern , ignore_case = ignore_case , show_all = show_all ) else : filtered = filter_ns ( namespace , name_pattern = pattern_list [ 0 ] , type_pattern = 'all' , ignore_case = ignore_case , show_all = show_all ) results = { } for ( name , obj ) in filtered . items ( ) : ns = list_namespace ( dict_dir ( obj ) , type_pattern , '.' . join ( pattern_list [ 1 : ] ) , ignore_case = ignore_case , show_all = show_all ) for ( inner_name , inner_obj ) in ns . items ( ) : results [ ( '%s.%s' % ( name , inner_name ) ) ] = inner_obj return results
return dictionary of all objects in a namespace dictionary that match type_pattern and filter .