Ejemplo n.º 1
0
def _add_finder(importer, finder):
  """Register a new pkg_resources path finder that does not replace the existing finder."""

  existing_finder = _get_finder(importer)

  if not existing_finder:
    pkg_resources.register_finder(importer, finder)
  else:
    pkg_resources.register_finder(importer, ChainedFinder.of(existing_finder, finder))
Ejemplo n.º 2
0
def _add_finder(importer, finder):
    """Register a new pkg_resources path finder that does not replace the existing finder."""

    existing_finder = _get_finder(importer)

    if not existing_finder:
        pkg_resources.register_finder(importer, finder)
    else:
        pkg_resources.register_finder(
            importer, ChainedFinder.of(existing_finder, finder))
Ejemplo n.º 3
0
def unregister_finders():
  """Unregister finders necessary for PEX to function properly."""

  global __PREVIOUS_FINDER
  if not __PREVIOUS_FINDER:
    return

  pkg_resources.register_finder(zipimport.zipimporter, __PREVIOUS_FINDER)
  _remove_finder(pkgutil.ImpImporter, find_wheels_on_path)

  if importlib_machinery is not None:
    _remove_finder(importlib_machinery.FileFinder, find_wheels_on_path)

  __PREVIOUS_FINDER = None
Ejemplo n.º 4
0
def unregister_finders():
    """Unregister finders necessary for PEX to function properly."""

    global __PREVIOUS_FINDER
    if not __PREVIOUS_FINDER:
        return

    pkg_resources.register_finder(zipimport.zipimporter, __PREVIOUS_FINDER)
    _remove_finder(pkgutil.ImpImporter, find_wheels_on_path)

    if importlib_machinery is not None:
        _remove_finder(importlib_machinery.FileFinder, find_wheels_on_path)

    __PREVIOUS_FINDER = None
Ejemplo n.º 5
0
def register_finders():
  """Register finders necessary for PEX to function properly."""

  # If the previous finder is set, then we've already monkeypatched, so skip.
  global __PREVIOUS_FINDER
  if __PREVIOUS_FINDER:
    return

  # save previous finder so that it can be restored
  previous_finder = _get_finder(zipimport.zipimporter)
  assert previous_finder, 'This appears to be using an incompatible setuptools.'

  # Enable finding zipped wheels.
  pkg_resources.register_finder(
      zipimport.zipimporter, ChainedFinder.of(pkg_resources.find_eggs_in_zip, find_wheels_in_zip))

  # append the wheel finder
  _add_finder(pkgutil.ImpImporter, find_wheels_on_path)

  if importlib_machinery is not None:
    _add_finder(importlib_machinery.FileFinder, find_wheels_on_path)

  __PREVIOUS_FINDER = previous_finder
Ejemplo n.º 6
0
def register_finders():
    """Register finders necessary for PEX to function properly."""

    # If the previous finder is set, then we've already monkeypatched, so skip.
    global __PREVIOUS_FINDER
    if __PREVIOUS_FINDER:
        return

    # save previous finder so that it can be restored
    previous_finder = _get_finder(zipimport.zipimporter)
    assert previous_finder, 'This appears to be using an incompatible setuptools.'

    # Enable finding zipped wheels.
    pkg_resources.register_finder(
        zipimport.zipimporter,
        ChainedFinder.of(pkg_resources.find_eggs_in_zip, find_wheels_in_zip))

    # append the wheel finder
    _add_finder(pkgutil.ImpImporter, find_wheels_on_path)

    if importlib_machinery is not None:
        _add_finder(importlib_machinery.FileFinder, find_wheels_on_path)

    __PREVIOUS_FINDER = previous_finder
Ejemplo n.º 7
0
def _remove_finder(importer, finder):
  """Remove an existing finder from pkg_resources."""

  existing_finder = _get_finder(importer)

  if not existing_finder:
    return

  if isinstance(existing_finder, ChainedFinder):
    try:
      existing_finder.finders.remove(finder)
    except ValueError:
      return
    if len(existing_finder.finders) == 1:
      pkg_resources.register_finder(importer, existing_finder.finders[0])
    elif len(existing_finder.finders) == 0:
      pkg_resources.register_finder(importer, pkg_resources.find_nothing)
  else:
    pkg_resources.register_finder(importer, pkg_resources.find_nothing)
Ejemplo n.º 8
0
def _remove_finder(importer, finder):
    """Remove an existing finder from pkg_resources."""

    existing_finder = _get_finder(importer)

    if not existing_finder:
        return

    if isinstance(existing_finder, ChainedFinder):
        try:
            existing_finder.finders.remove(finder)
        except ValueError:
            return
        if len(existing_finder.finders) == 1:
            pkg_resources.register_finder(importer, existing_finder.finders[0])
        elif len(existing_finder.finders) == 0:
            pkg_resources.register_finder(importer, pkg_resources.find_nothing)
    else:
        pkg_resources.register_finder(importer, pkg_resources.find_nothing)