parameters: (importer, path_item, only=False)
docstring: Yield distributions accessible on a sys.path directory
docstring_summary: Yield distributions accessible on a sys.path directory
docstring_tokens: Yield distributions accessible on a sys . path directory
function: def find_on_path(importer, path_item, only=False):
      """Yield distributions accessible on a sys.path directory"""
      path_item = _normalize_cached(path_item)
  
      if os.path.isdir(path_item) and os.access(path_item, os.R_OK):
          if path_item.lower().endswith('.egg'):
              # unpacked egg
              yield Distribution.from_filename(
                  path_item, metadata=PathMetadata(
                      path_item, os.path.join(path_item,'EGG-INFO')
                  )
              )
          else:
              # scan for .egg and .egg-info in directory
              for entry in os.listdir(path_item):
                  lower = entry.lower()
                  if lower.endswith('.egg-info') or lower.endswith('.dist-info'):
                      fullpath = os.path.join(path_item, entry)
                      if os.path.isdir(fullpath):
                          # egg-info directory, allow getting metadata
                          metadata = PathMetadata(path_item, fullpath)
                      else:
                          metadata = FileMetadata(fullpath)
                      yield Distribution.from_location(
                          path_item, entry, metadata, precedence=DEVELOP_DIST
                      )
                  elif not only and lower.endswith('.egg'):
                      dists = find_distributions(os.path.join(path_item, entry))
                      for dist in dists:
                          yield dist
                  elif not only and lower.endswith('.egg-link'):
                      with open(os.path.join(path_item, entry)) as entry_file:
                          entry_lines = entry_file.readlines()
                      for line in entry_lines:
                          if not line.strip():
                              continue
                          path = os.path.join(path_item, line.rstrip())
                          dists = find_distributions(path)
                          for item in dists:
                              yield item
                          break
function_tokens: def find_on_path ( importer , path_item , only = False ) : path_item = _normalize_cached ( path_item ) if os . path . isdir ( path_item ) and os . access ( path_item , os . R_OK ) : if path_item . lower ( ) . endswith ( '.egg' ) : # unpacked egg yield Distribution . from_filename ( path_item , metadata = PathMetadata ( path_item , os . path . join ( path_item , 'EGG-INFO' ) ) ) else : # scan for .egg and .egg-info in directory for entry in os . listdir ( path_item ) : lower = entry . lower ( ) if lower . endswith ( '.egg-info' ) or lower . endswith ( '.dist-info' ) : fullpath = os . path . join ( path_item , entry ) if os . path . isdir ( fullpath ) : # egg-info directory, allow getting metadata metadata = PathMetadata ( path_item , fullpath ) else : metadata = FileMetadata ( fullpath ) yield Distribution . from_location ( path_item , entry , metadata , precedence = DEVELOP_DIST ) elif not only and lower . endswith ( '.egg' ) : dists = find_distributions ( os . path . join ( path_item , entry ) ) for dist in dists : yield dist elif not only and lower . endswith ( '.egg-link' ) : with open ( os . path . join ( path_item , entry ) ) as entry_file : entry_lines = entry_file . readlines ( ) for line in entry_lines : if not line . strip ( ) : continue path = os . path . join ( path_item , line . rstrip ( ) ) dists = find_distributions ( path ) for item in dists : yield item break