code: def distros_for_location(location, basename, metadata=None):
      
      if basename.endswith('.egg.zip'):
          basename = basename[:-4]  # strip the .zip
      if basename.endswith('.egg') and '-' in basename:
          # only one, unambiguous interpretation
          return [Distribution.from_location(location, basename, metadata)]
      if basename.endswith('.whl') and '-' in basename:
          wheel = Wheel(basename)
          if not wheel.is_compatible():
              return []
          return [Distribution(
              location=location,
              project_name=wheel.project_name,
              version=wheel.version,
              # Increase priority over eggs.
              precedence=EGG_DIST + 1,
          )]
      if basename.endswith('.exe'):
          win_base, py_ver, platform = parse_bdist_wininst(basename)
          if win_base is not None:
              return interpret_distro_name(
                  location, win_base, metadata, py_ver, BINARY_DIST, platform
              )
      # Try source distro extensions (.zip, .tgz, etc.)
      #
      for ext in EXTENSIONS:
          if basename.endswith(ext):
              basename = basename[:-len(ext)]
              return interpret_distro_name(location, basename, metadata)
      return []
docs: Yield egg or source distribution objects based on basename