parameters: (cls, fullname, path=None, target=None)
docstring: Try to find a spec for 'fullname' on sys.path or 'path'.
  
          The search is based on sys.path_hooks and sys.path_importer_cache.
docstring_summary: Try to find a spec for 'fullname' on sys.path or 'path'.
docstring_tokens: Try to find a spec for fullname on sys . path or path .
function: def find_spec(cls, fullname, path=None, target=None):
          """Try to find a spec for 'fullname' on sys.path or 'path'.
  
          The search is based on sys.path_hooks and sys.path_importer_cache.
          """
          if path is None:
              path = sys.path
          spec = cls._get_spec(fullname, path, target)
          if spec is None:
              return None
          elif spec.loader is None:
              namespace_path = spec.submodule_search_locations
              if namespace_path:
                  # We found at least one namespace path.  Return a spec which
                  # can create the namespace package.
                  spec.origin = None
                  spec.submodule_search_locations = _NamespacePath(fullname, namespace_path, cls._get_spec)
                  return spec
              else:
                  return None
          else:
              return spec
function_tokens: def find_spec ( cls , fullname , path = None , target = None ) : if path is None : path = sys . path spec = cls . _get_spec ( fullname , path , target ) if spec is None : return None elif spec . loader is None : namespace_path = spec . submodule_search_locations if namespace_path : # We found at least one namespace path.  Return a spec which # can create the namespace package. spec . origin = None spec . submodule_search_locations = _NamespacePath ( fullname , namespace_path , cls . _get_spec ) return spec else : return None else : return spec