def _generate_metadata(self): # type: () -> str """Invokes metadata generator functions, with the required arguments. """ if not self.use_pep517: assert self.unpacked_source_directory if not self._check_setup_py_or_cfg_exists(): raise InstallationError( f'File "setup.py" or "setup.cfg" not found for legacy ' f'project {self}.') return generate_metadata_legacy( build_env=self.build_env, setup_py_path=self.setup_py_path, source_dir=self.unpacked_source_directory, isolated=self.isolated, details=self.name or f"from {self.link}") assert self.pep517_backend is not None return generate_metadata( build_env=self.build_env, backend=self.pep517_backend, )
def prepare_metadata(self) -> None: """Ensure that project metadata is available. Under PEP 517 and PEP 660, call the backend hook to prepare the metadata. Under legacy processing, call setup.py egg-info. """ assert self.source_dir details = self.name or f"from {self.link}" if self.use_pep517: assert self.pep517_backend is not None if ( self.editable and self.permit_editable_wheels and self.supports_pyproject_editable() ): self.metadata_directory = generate_editable_metadata( build_env=self.build_env, backend=self.pep517_backend, details=details, ) else: self.metadata_directory = generate_metadata( build_env=self.build_env, backend=self.pep517_backend, details=details, ) else: self.metadata_directory = generate_metadata_legacy( build_env=self.build_env, setup_py_path=self.setup_py_path, source_dir=self.unpacked_source_directory, isolated=self.isolated, details=details, ) # Act on the newly generated metadata, based on the name and version. if not self.name: self._set_requirement() else: self.warn_on_mismatching_name() self.assert_source_matches_version()
def _generate_metadata(self): # type: () -> str """Invokes metadata generator functions, with the required arguments. """ if not self.use_pep517: assert self.unpacked_source_directory return generate_metadata_legacy( build_env=self.build_env, setup_py_path=self.setup_py_path, source_dir=self.unpacked_source_directory, isolated=self.isolated, details=self.name or "from {}".format(self.link), ) assert self.pep517_backend is not None return generate_metadata(build_env=self.build_env, backend=self.pep517_backend)
def _generate_metadata(self) -> str: """Invokes metadata generator functions, with the required arguments.""" if self.use_pep517: assert self.pep517_backend is not None try: return generate_metadata( build_env=self.build_env, backend=self.pep517_backend, ) except HookMissing as e: raise InstallationError( f"Project {self} has a pyproject.toml but its build " f"backend is missing the required {e} hook.") elif not os.path.exists(self.setup_py_path): raise InstallationError( f"File 'setup.py' not found for legacy project {self}.") return generate_metadata_legacy( build_env=self.build_env, setup_py_path=self.setup_py_path, source_dir=self.unpacked_source_directory, isolated=self.isolated, details=self.name or f"from {self.link}", )