コード例 #1
0
def test_get_entry_point_from_console_script_conflict():
    dists = [
        FakeDist(key="bob", console_script_entry="bob= bob.main:run"),
        FakeDist(key="fake", console_script_entry="bob =bob.main:run"),
    ]
    with pytest.raises(RuntimeError):
        get_entry_point_from_console_script("bob", dists)
コード例 #2
0
ファイル: test_finders.py プロジェクト: stuhood/pex
def test_get_entry_point_from_console_script_conflict():
    dists = [
        FakeDist(key='bob', console_script_entry='bob= bob.main:run'),
        FakeDist(key='fake', console_script_entry='bob =bob.main:run')
    ]
    with pytest.raises(RuntimeError):
        get_entry_point_from_console_script('bob', dists)
コード例 #3
0
    def set_script(self, script):
        """Set the entry point of this PEX environment based upon a distribution script.

        :param script: The script name as defined either by a console script or ordinary
          script within the setup.py of one of the distributions added to the PEX.
        :raises: :class:`PEXBuilder.InvalidExecutableSpecification` if the script is not found
          in any distribution added to the PEX.
        """

        # check if 'script' is a console_script
        dist, entry_point = get_entry_point_from_console_script(
            script, self._distributions.values())
        if entry_point:
            self.set_entry_point(entry_point)
            TRACER.log("Set entrypoint to console_script %r in %r" %
                       (entry_point, dist))
            return

        # check if 'script' is an ordinary script
        dist_script = get_script_from_distributions(
            script, self._distributions.values())
        if dist_script:
            if self._pex_info.entry_point:
                raise self.InvalidExecutableSpecification(
                    "Cannot set both entry point and script of PEX!")
            self._pex_info.script = script
            TRACER.log("Set entrypoint to script %r in %r" %
                       (script, dist_script.dist))
            return

        raise self.InvalidExecutableSpecification(
            "Could not find script %r in any distribution %s within PEX!" %
            (script, ", ".join(str(d) for d in self._distributions.values())))
コード例 #4
0
ファイル: pex_builder.py プロジェクト: jsirois/pex
  def set_script(self, script):
    """Set the entry point of this PEX environment based upon a distribution script.

    :param script: The script name as defined either by a console script or ordinary
      script within the setup.py of one of the distributions added to the PEX.
    :raises: :class:`PEXBuilder.InvalidExecutableSpecification` if the script is not found
      in any distribution added to the PEX.
    """

    # check if 'script' is a console_script
    dist, entry_point = get_entry_point_from_console_script(script, self._distributions)
    if entry_point:
      self.set_entry_point(entry_point)
      TRACER.log('Set entrypoint to console_script %r in %r' % (entry_point, dist))
      return

    # check if 'script' is an ordinary script
    dist, _, _ = get_script_from_distributions(script, self._distributions)
    if dist:
      if self._pex_info.entry_point:
        raise self.InvalidExecutableSpecification('Cannot set both entry point and script of PEX!')
      self._pex_info.script = script
      TRACER.log('Set entrypoint to script %r in %r' % (script, dist))
      return

    raise self.InvalidExecutableSpecification(
        'Could not find script %r in any distribution %s within PEX!' % (
            script, ', '.join(str(d) for d in self._distributions)))
コード例 #5
0
def test_get_entry_point_from_console_script_dne():
    # type: () -> None
    dists = [
        FakeDist(key="bob", console_script_entry="bob= bob.main:run"),
        FakeDist(key="fake", console_script_entry="bob =bob.main:run"),
    ]
    assert (None, None) == get_entry_point_from_console_script("jane", dists)
コード例 #6
0
def test_get_entry_point_from_console_script():
  dists = [FakeDist(key='fake', console_script_entry='bob= bob.main:run'),
           FakeDist(key='fake', console_script_entry='bob =bob.main:run')]

  dist, entrypoint = get_entry_point_from_console_script('bob', dists)
  assert 'bob.main:run' == entrypoint
  assert dist in dists
コード例 #7
0
ファイル: test_finders.py プロジェクト: jsirois/pex
def test_get_entry_point_from_console_script():
  dists = [FakeDist(key='fake', console_script_entry='bob= bob.main:run'),
           FakeDist(key='fake', console_script_entry='bob =bob.main:run')]

  dist, entrypoint = get_entry_point_from_console_script('bob', dists)
  assert 'bob.main:run' == entrypoint
  assert dist in dists
コード例 #8
0
def test_get_entry_point_from_console_script():
    dists = [
        FakeDist(key="fake", console_script_entry="bob= bob.main:run"),
        FakeDist(key="fake", console_script_entry="bob =bob.main:run"),
    ]

    dist, entrypoint = get_entry_point_from_console_script("bob", dists)
    assert "bob.main:run" == entrypoint
    assert dist in dists
コード例 #9
0
ファイル: pex.py プロジェクト: jsirois/pex
  def execute_script(self, script_name):
    dists = list(self._activate())

    dist, entry_point = get_entry_point_from_console_script(script_name, dists)
    if entry_point:
      TRACER.log('Found console_script %r in %r' % (entry_point, dist))
      sys.exit(self.execute_entry(entry_point))

    dist, script_path, script_content = get_script_from_distributions(script_name, dists)
    if not dist:
      raise self.NotFound('Could not find script %r in pex!' % script_name)
    TRACER.log('Found script %r in %r' % (script_name, dist))
    return self.execute_content(script_path, script_content, argv0=script_name)
コード例 #10
0
  def execute_script(self, script_name):
    dists = list(self._activate())

    dist, entry_point = get_entry_point_from_console_script(script_name, dists)
    if entry_point:
      TRACER.log('Found console_script %r in %r' % (entry_point, dist))
      sys.exit(self.execute_entry(entry_point))

    dist, script_path, script_content = get_script_from_distributions(script_name, dists)
    if not dist:
      raise self.NotFound('Could not find script %r in pex!' % script_name)
    TRACER.log('Found script %r in %r' % (script_name, dist))
    return self.execute_content(script_path, script_content, argv0=script_name)
コード例 #11
0
    def execute_script(self, script_name):
        dists = list(self.activate())

        dist, entry_point = get_entry_point_from_console_script(script_name, dists)
        if entry_point:
            TRACER.log("Found console_script %r in %r" % (entry_point, dist))
            sys.exit(self.execute_entry(entry_point))

        dist_script = get_script_from_distributions(script_name, dists)
        if not dist_script:
            raise self.NotFound("Could not find script %r in pex!" % script_name)
        TRACER.log("Found script %r in %r" % (script_name, dist))
        return self.execute_content(
            dist_script.path, dist_script.read_contents(), argv0=script_name
        )
コード例 #12
0
ファイル: pex.py プロジェクト: cosmicexplorer/pex
    def execute_script(self, script_name):
        # type: (str) -> Any
        dists = list(self.activate())

        dist, entry_point = get_entry_point_from_console_script(script_name, dists)
        if entry_point:
            TRACER.log("Found console_script {!r} in {!r}.".format(entry_point, dist))
            return self.execute_entry(entry_point)

        dist_script = get_script_from_distributions(script_name, dists)
        if not dist_script:
            return "Could not find script {!r} in pex!".format(script_name)
        TRACER.log("Found script {!r} in {!r}.".format(script_name, dist))
        return self.execute_content(
            dist_script.path, dist_script.read_contents(), argv0=script_name
        )
コード例 #13
0
ファイル: pex_builder.py プロジェクト: jjhelmus/pex
    def set_script(self, script):
        """Set the entry point of this PEX environment based upon a distribution script.

        :param script: The script name as defined either by a console script or ordinary
          script within the setup.py of one of the distributions added to the PEX.
        :raises: :class:`PEXBuilder.InvalidExecutableSpecification` if the script is not found
          in any distribution added to the PEX.
        """

        distributions = OrderedSet(self._distributions.values())
        if self._pex_info.pex_path:
            for pex in self._pex_info.pex_path.split(":"):
                if os.path.exists(pex):
                    distributions.update(
                        PEX(pex, interpreter=self._interpreter).resolve())

        # Check if 'script' is a console_script.
        dist, entry_point = get_entry_point_from_console_script(
            script, distributions)
        if entry_point:
            self.set_entry_point(entry_point)
            TRACER.log("Set entrypoint to console_script {!r} in {!r}".format(
                entry_point, dist))
            return

        # Check if 'script' is an ordinary script.
        dist_script = get_script_from_distributions(script, distributions)
        if dist_script:
            if self._pex_info.entry_point:
                raise self.InvalidExecutableSpecification(
                    "Cannot set both entry point and script of PEX!")
            self._pex_info.script = script
            TRACER.log("Set entrypoint to script {!r} in {!r}".format(
                script, dist_script.dist))
            return

        raise self.InvalidExecutableSpecification(
            "Could not find script {!r} in any distribution {} within PEX!".
            format(script, ", ".join(str(d) for d in distributions)))
コード例 #14
0
ファイル: test_finders.py プロジェクト: stuhood/pex
def test_get_entry_point_from_console_script_dne():
    dists = [
        FakeDist(key='bob', console_script_entry='bob= bob.main:run'),
        FakeDist(key='fake', console_script_entry='bob =bob.main:run')
    ]
    assert None is get_entry_point_from_console_script('jane', dists)
コード例 #15
0
ファイル: test_finders.py プロジェクト: jsirois/pex
def test_get_entry_point_from_console_script_dne():
  dists = [FakeDist(key='bob', console_script_entry='bob= bob.main:run'),
           FakeDist(key='fake', console_script_entry='bob =bob.main:run')]
  assert (None, None) == get_entry_point_from_console_script('jane', dists)
コード例 #16
0
ファイル: test_finders.py プロジェクト: jsirois/pex
def test_get_entry_point_from_console_script_conflict():
  dists = [FakeDist(key='bob', console_script_entry='bob= bob.main:run'),
           FakeDist(key='fake', console_script_entry='bob =bob.main:run')]
  with pytest.raises(RuntimeError):
    get_entry_point_from_console_script('bob', dists)