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)
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)
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())))
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)))
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)
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
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
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
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)
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)
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 )
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 )
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)))
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)
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)
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)