def main( self, args: List[str] = None, prog_name: str = None, obj: Optional[Project] = None, **extra: Any, ) -> None: """The main entry function""" from pdm.models.pip_shims import global_tempdir_manager self.init_parser() self.load_plugins() assert self.parser assert self.subparsers options = self.parser.parse_args(args or None) self.ui.set_verbosity(options.verbose) if options.ignore_python: os.environ["PDM_IGNORE_SAVED_PYTHON"] = "1" if options.pep582: print_pep582_command(self.ui, options.pep582) sys.exit(0) self.ensure_project(options, obj) try: f = options.handler except AttributeError: self.parser.print_help() sys.exit(1) else: try: with global_tempdir_manager(): f(options.project, options) except Exception: etype, err, traceback = sys.exc_info() should_show_tb = not isinstance(err, PdmUsageError) if self.ui.verbosity > termui.NORMAL and should_show_tb: raise cast(Exception, err).with_traceback(traceback) self.ui.echo( f"{termui.red('[' + etype.__name__ + ']')}: {err}", # type: ignore err=True, ) if should_show_tb: self.ui.echo("Add '-v' to see the detailed traceback", fg="yellow") sys.exit(1)
def main(self, args=None, prog_name=None, obj=None, **extra): """The main entry function""" from pdm.models.pip_shims import global_tempdir_manager self.init_parser() self.load_plugins() self.parser.set_defaults(global_project=None) options = self.parser.parse_args(args or None) stream.set_verbosity(options.verbose) if obj is not None: options.project = obj if options.global_project: options.project = options.global_project if options.pep582: print_pep582_command(options.pep582) sys.exit(0) if not getattr(options, "project", None): options.project = self.project_class() # Add reverse reference for core object options.project.core = self migrate_pyproject(options.project) try: f = options.handler except AttributeError: self.parser.print_help() sys.exit(1) else: try: with global_tempdir_manager(): f(options.project, options) except Exception: etype, err, traceback = sys.exc_info() if stream.verbosity > stream.NORMAL: raise err.with_traceback(traceback) stream.echo(f"{stream.red('[' + etype.__name__ + ']')}: {err}", err=True) stream.echo( stream.yellow("Add '-v' to see the detailed traceback")) sys.exit(1)
def main(self, args=None, prog_name=None, obj=None, **extra): """The main entry function""" from pdm.models.pip_shims import global_tempdir_manager self.init_parser() self.load_plugins() options = self.parser.parse_args(args or None) stream.set_verbosity(options.verbose) if options.ignore_python: os.environ["PDM_IGNORE_SAVED_PYTHON"] = "1" if options.pep582: print_pep582_command(options.pep582) sys.exit(0) self.ensure_project(options, obj) try: f = options.handler except AttributeError: self.parser.print_help() sys.exit(1) else: try: with global_tempdir_manager(): f(options.project, options) except Exception: etype, err, traceback = sys.exc_info() if stream.verbosity > stream.NORMAL: raise err.with_traceback(traceback) stream.echo( f"{stream.red('[' + etype.__name__ + ']')}: {err}", err=True ) stream.echo(stream.yellow("Add '-v' to see the detailed traceback")) sys.exit(1)
def pip_global_tempdir_manager(): from pdm.models.pip_shims import global_tempdir_manager with global_tempdir_manager(): yield