MCPcopy
hub / github.com/pex-tool/pex / validate_entry_point

Function validate_entry_point

pex/pex.py:900–930  ·  view source on GitHub ↗
(
    pex,  # type: PEX
    entry_point,  # type: str
)

Source from the content-addressed store, hash-verified

898
899
900def validate_entry_point(
901 pex, # type: PEX
902 entry_point, # type: str
903):
904 # type: (...) -> None
905
906 try:
907 ep = parse_entry_point(entry_point)
908 except ValueError as e:
909 raise PEX.InvalidEntryPoint(
910 "Failed to parse `{entry_point}`: {err}".format(entry_point=entry_point, err=e)
911 )
912
913 if isinstance(ep, ModuleEntryPoint):
914 import_statement = "import {module}".format(module=ep.module)
915 else:
916 import_statement = "from {module} import {method}".format(
917 module=ep.module, method=ep.attrs[0]
918 )
919
920 with named_temporary_file() as fp:
921 fp.write(import_statement.encode("utf-8"))
922 fp.close()
923 retcode = pex.run([fp.name], env={"PEX_INTERPRETER": "1"})
924 if retcode != 0:
925 raise PEX.InvalidEntryPoint(
926 "Invalid entry point: `{entry_point}`\n"
927 "Entry point verification failed: `{import_statement}`".format(
928 entry_point=entry_point, import_statement=import_statement
929 )
930 )

Calls 6

parse_entry_pointFunction · 0.90
named_temporary_fileFunction · 0.90
writeMethod · 0.45
encodeMethod · 0.45
closeMethod · 0.45
runMethod · 0.45