From c5fa981410e231e468c086f48ba0acf5197284f8 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 21:32:20 -0400 Subject: [PATCH 01/14] Accept os.PathLike in addition to str for paths in public API; closes #372 --- src/build/__init__.py | 30 +++++++++++++++--------------- src/build/__main__.py | 14 +++++++------- src/build/util.py | 2 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/build/__init__.py b/src/build/__init__.py index 7bb71d91..6d7ee438 100644 --- a/src/build/__init__.py +++ b/src/build/__init__.py @@ -121,7 +121,7 @@ def _working_directory(path: str) -> Iterator[None]: os.chdir(current) -def _validate_source_directory(srcdir: str) -> None: +def _validate_source_directory(srcdir: Union[str, os.PathLike[str]]) -> None: if not os.path.isdir(srcdir): raise BuildException(f'Source {srcdir} is not a directory') pyproject_toml = os.path.join(srcdir, 'pyproject.toml') @@ -228,7 +228,7 @@ class ProjectBuilder: def __init__( self, - srcdir: str, + srcdir: Union[str, os.PathLike[str]], python_executable: str = sys.executable, scripts_dir: Optional[str] = None, runner: RunnerType = pep517.wrappers.default_subprocess_runner, @@ -356,13 +356,13 @@ def check_dependencies( return {u for d in dependencies for u in check_dependency(d)} def prepare( - self, distribution: str, output_directory: str, config_settings: Optional[ConfigSettingsType] = None + self, distribution: str, outdir: Union[str, os.PathLike[str]], config_settings: Optional[ConfigSettingsType] = None ) -> Optional[str]: """ Prepare metadata for a distribution. :param distribution: Distribution to build (must be ``wheel``) - :param output_directory: Directory to put the prepared metadata in + :param outdir: Directory to put the prepared metadata in :param config_settings: Config settings for the build backend :returns: The full path to the prepared metadata directory """ @@ -370,7 +370,7 @@ def prepare( try: return self._call_backend( f'prepare_metadata_for_build_{distribution}', - output_directory, + outdir, config_settings, _allow_fallback=False, ) @@ -382,7 +382,7 @@ def prepare( def build( self, distribution: str, - output_directory: str, + outdir: Union[str, os.PathLike[str]], config_settings: Optional[ConfigSettingsType] = None, metadata_directory: Optional[str] = None, ) -> str: @@ -390,7 +390,7 @@ def build( Build a distribution. :param distribution: Distribution to build (``sdist`` or ``wheel``) - :param output_directory: Directory to put the built distribution in + :param outdir: Directory to put the built distribution in :param config_settings: Config settings for the build backend :param metadata_directory: If provided, should be the return value of a previous ``prepare`` call on the same ``distribution`` kind @@ -398,24 +398,24 @@ def build( """ self.log(f'Building {distribution}...') kwargs = {} if metadata_directory is None else {'metadata_directory': metadata_directory} - return self._call_backend(f'build_{distribution}', output_directory, config_settings, **kwargs) + return self._call_backend(f'build_{distribution}', outdir, config_settings, **kwargs) - def metadata_path(self, output_directory: str) -> str: + def metadata_path(self, outdir: Union[str, os.PathLike[str]]) -> str: """ Generates the metadata directory of a distribution and returns its path. If the backend does not support the ``prepare_metadata_for_build_wheel`` hook, a wheel will be built and the metadata extracted. - :param output_directory: Directory to put the metadata distribution in + :param outdir: Directory to put the metadata distribution in """ # prepare_metadata hook - metadata = self.prepare('wheel', output_directory) + metadata = self.prepare('wheel', outdir) if metadata is not None: return metadata # fallback to build_wheel hook - wheel = self.build('wheel', output_directory) + wheel = self.build('wheel', outdir) match = _WHEEL_NAME_REGEX.match(os.path.basename(wheel)) if not match: raise ValueError('Invalid wheel') @@ -423,13 +423,13 @@ def metadata_path(self, output_directory: str) -> str: member_prefix = f'{distinfo}/' with zipfile.ZipFile(wheel) as w: w.extractall( - output_directory, + outdir, (member for member in w.namelist() if member.startswith(member_prefix)), ) - return os.path.join(output_directory, distinfo) + return os.path.join(outdir, distinfo) def _call_backend( - self, hook_name: str, outdir: str, config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any + self, hook_name: str, outdir: Union[str, os.PathLike[str]], config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any ) -> str: outdir = os.path.abspath(outdir) diff --git a/src/build/__main__.py b/src/build/__main__.py index dd4ff0d6..9622eeb6 100644 --- a/src/build/__main__.py +++ b/src/build/__main__.py @@ -99,7 +99,7 @@ def _format_dep_chain(dep_chain: Sequence[str]) -> str: def _build_in_isolated_env( - builder: ProjectBuilder, outdir: str, distribution: str, config_settings: Optional[ConfigSettingsType] + builder: ProjectBuilder, outdir: Union[str, os.PathLike[str]], distribution: str, config_settings: Optional[ConfigSettingsType] ) -> str: with _IsolatedEnvBuilder() as env: builder.python_executable = env.executable @@ -113,7 +113,7 @@ def _build_in_isolated_env( def _build_in_current_env( builder: ProjectBuilder, - outdir: str, + outdir: Union[str, os.PathLike[str]], distribution: str, config_settings: Optional[ConfigSettingsType], skip_dependency_check: bool = False, @@ -131,7 +131,7 @@ def _build_in_current_env( def _build( isolation: bool, builder: ProjectBuilder, - outdir: str, + outdir: Union[str, os.PathLike[str]], distribution: str, config_settings: Optional[ConfigSettingsType], skip_dependency_check: bool, @@ -179,8 +179,8 @@ def _natural_language_list(elements: Sequence[str]) -> str: def build_package( - srcdir: str, - outdir: str, + srcdir: Union[str, os.PathLike[str]], + outdir: Union[str, os.PathLike[str]], distributions: Sequence[str], config_settings: Optional[ConfigSettingsType] = None, isolation: bool = True, @@ -205,8 +205,8 @@ def build_package( def build_package_via_sdist( - srcdir: str, - outdir: str, + srcdir: Union[str, os.PathLike[str]], + outdir: Union[str, os.PathLike[str]], distributions: Sequence[str], config_settings: Optional[ConfigSettingsType] = None, isolation: bool = True, diff --git a/src/build/util.py b/src/build/util.py index 1710e1c3..55258cff 100644 --- a/src/build/util.py +++ b/src/build/util.py @@ -27,7 +27,7 @@ def _project_wheel_metadata(builder: build.ProjectBuilder) -> 'importlib_metadat def project_wheel_metadata( - srcdir: Union[str, 'os.PathLike[str]'], + srcdir: Union[str, os.PathLike[str]], isolated: bool = True, ) -> 'importlib_metadata.PackageMetadata': """ From 5147632b94c2f95cecd885459c965d4156d57618 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:02:08 -0400 Subject: [PATCH 02/14] update CHANGELOG --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 41be321d..fbb7a681 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,11 @@ Changelog Unreleased ========== +- Accept `os.PathLike[str]` in addition to str for paths in public API (`PR #TODO`_, Fixes `#372`_) + +.. _PR #TODO: https://github.com/pypa/build/pull/TODO +.. _#372: https://github.com/pypa/build/issues/372 + - Add schema validation for ``build-system`` table to check conformity with PEP 517 and PEP 518 (`PR #365`_, Fixes `#364`_) From aecafd80bf114e2b98a1994ad4586fe025e27901 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:18:14 -0400 Subject: [PATCH 03/14] add note about parameter rename to CHANGELOG --- CHANGELOG.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fbb7a681..9c2e7a23 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,7 +6,8 @@ Changelog Unreleased ========== -- Accept `os.PathLike[str]` in addition to str for paths in public API (`PR #TODO`_, Fixes `#372`_) +- Accept `os.PathLike[str]` in addition to str for paths in public API + and rename `output_directory` to `outdir` (`PR #TODO`_, Fixes `#372`_) .. _PR #TODO: https://github.com/pypa/build/pull/TODO .. _#372: https://github.com/pypa/build/issues/372 From 1f2c9130c8d81397e02310294289a802def24904 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:21:38 -0400 Subject: [PATCH 04/14] Path = Union[str, os.PathLike[str]] --- src/build/__init__.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/build/__init__.py b/src/build/__init__.py index 6d7ee438..444e4a9d 100644 --- a/src/build/__init__.py +++ b/src/build/__init__.py @@ -50,6 +50,7 @@ RunnerType = Callable[[Sequence[str], Optional[str], Optional[Mapping[str, str]]], None] ConfigSettingsType = Mapping[str, Union[str, Sequence[str]]] +Path = Union[str, os.PathLike[str]] _ExcInfoType = Union[Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]] @@ -121,7 +122,7 @@ def _working_directory(path: str) -> Iterator[None]: os.chdir(current) -def _validate_source_directory(srcdir: Union[str, os.PathLike[str]]) -> None: +def _validate_source_directory(srcdir: Path) -> None: if not os.path.isdir(srcdir): raise BuildException(f'Source {srcdir} is not a directory') pyproject_toml = os.path.join(srcdir, 'pyproject.toml') @@ -228,7 +229,7 @@ class ProjectBuilder: def __init__( self, - srcdir: Union[str, os.PathLike[str]], + srcdir: Path, python_executable: str = sys.executable, scripts_dir: Optional[str] = None, runner: RunnerType = pep517.wrappers.default_subprocess_runner, @@ -356,7 +357,7 @@ def check_dependencies( return {u for d in dependencies for u in check_dependency(d)} def prepare( - self, distribution: str, outdir: Union[str, os.PathLike[str]], config_settings: Optional[ConfigSettingsType] = None + self, distribution: str, outdir: Path, config_settings: Optional[ConfigSettingsType] = None ) -> Optional[str]: """ Prepare metadata for a distribution. @@ -382,7 +383,7 @@ def prepare( def build( self, distribution: str, - outdir: Union[str, os.PathLike[str]], + outdir: Path, config_settings: Optional[ConfigSettingsType] = None, metadata_directory: Optional[str] = None, ) -> str: @@ -400,7 +401,7 @@ def build( kwargs = {} if metadata_directory is None else {'metadata_directory': metadata_directory} return self._call_backend(f'build_{distribution}', outdir, config_settings, **kwargs) - def metadata_path(self, outdir: Union[str, os.PathLike[str]]) -> str: + def metadata_path(self, outdir: Path) -> str: """ Generates the metadata directory of a distribution and returns its path. @@ -429,7 +430,7 @@ def metadata_path(self, outdir: Union[str, os.PathLike[str]]) -> str: return os.path.join(outdir, distinfo) def _call_backend( - self, hook_name: str, outdir: Union[str, os.PathLike[str]], config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any + self, hook_name: str, outdir: Path, config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any ) -> str: outdir = os.path.abspath(outdir) From e5789d98d6410593c18bcc5471cfaba0a385f7c9 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:26:04 -0400 Subject: [PATCH 05/14] Path -> PathType and use in __main__.py --- src/build/__init__.py | 14 +++++++------- src/build/__main__.py | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/build/__init__.py b/src/build/__init__.py index 444e4a9d..33b7382b 100644 --- a/src/build/__init__.py +++ b/src/build/__init__.py @@ -50,7 +50,7 @@ RunnerType = Callable[[Sequence[str], Optional[str], Optional[Mapping[str, str]]], None] ConfigSettingsType = Mapping[str, Union[str, Sequence[str]]] -Path = Union[str, os.PathLike[str]] +PathType = Union[str, os.PathLike[str]] _ExcInfoType = Union[Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]] @@ -122,7 +122,7 @@ def _working_directory(path: str) -> Iterator[None]: os.chdir(current) -def _validate_source_directory(srcdir: Path) -> None: +def _validate_source_directory(srcdir: PathType) -> None: if not os.path.isdir(srcdir): raise BuildException(f'Source {srcdir} is not a directory') pyproject_toml = os.path.join(srcdir, 'pyproject.toml') @@ -229,7 +229,7 @@ class ProjectBuilder: def __init__( self, - srcdir: Path, + srcdir: PathType, python_executable: str = sys.executable, scripts_dir: Optional[str] = None, runner: RunnerType = pep517.wrappers.default_subprocess_runner, @@ -357,7 +357,7 @@ def check_dependencies( return {u for d in dependencies for u in check_dependency(d)} def prepare( - self, distribution: str, outdir: Path, config_settings: Optional[ConfigSettingsType] = None + self, distribution: str, outdir: PathType, config_settings: Optional[ConfigSettingsType] = None ) -> Optional[str]: """ Prepare metadata for a distribution. @@ -383,7 +383,7 @@ def prepare( def build( self, distribution: str, - outdir: Path, + outdir: PathType, config_settings: Optional[ConfigSettingsType] = None, metadata_directory: Optional[str] = None, ) -> str: @@ -401,7 +401,7 @@ def build( kwargs = {} if metadata_directory is None else {'metadata_directory': metadata_directory} return self._call_backend(f'build_{distribution}', outdir, config_settings, **kwargs) - def metadata_path(self, outdir: Path) -> str: + def metadata_path(self, outdir: PathType) -> str: """ Generates the metadata directory of a distribution and returns its path. @@ -430,7 +430,7 @@ def metadata_path(self, outdir: Path) -> str: return os.path.join(outdir, distinfo) def _call_backend( - self, hook_name: str, outdir: Path, config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any + self, hook_name: str, outdir: PathType, config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any ) -> str: outdir = os.path.abspath(outdir) diff --git a/src/build/__main__.py b/src/build/__main__.py index 9622eeb6..d5685cd9 100644 --- a/src/build/__main__.py +++ b/src/build/__main__.py @@ -17,7 +17,7 @@ import build -from build import BuildBackendException, BuildException, ConfigSettingsType, ProjectBuilder +from build import BuildBackendException, BuildException, ConfigSettingsType, PathType, ProjectBuilder from build.env import IsolatedEnvBuilder @@ -99,7 +99,7 @@ def _format_dep_chain(dep_chain: Sequence[str]) -> str: def _build_in_isolated_env( - builder: ProjectBuilder, outdir: Union[str, os.PathLike[str]], distribution: str, config_settings: Optional[ConfigSettingsType] + builder: ProjectBuilder, outdir: PathType, distribution: str, config_settings: Optional[ConfigSettingsType] ) -> str: with _IsolatedEnvBuilder() as env: builder.python_executable = env.executable @@ -113,7 +113,7 @@ def _build_in_isolated_env( def _build_in_current_env( builder: ProjectBuilder, - outdir: Union[str, os.PathLike[str]], + outdir: PathType, distribution: str, config_settings: Optional[ConfigSettingsType], skip_dependency_check: bool = False, @@ -131,7 +131,7 @@ def _build_in_current_env( def _build( isolation: bool, builder: ProjectBuilder, - outdir: Union[str, os.PathLike[str]], + outdir: PathType, distribution: str, config_settings: Optional[ConfigSettingsType], skip_dependency_check: bool, @@ -179,8 +179,8 @@ def _natural_language_list(elements: Sequence[str]) -> str: def build_package( - srcdir: Union[str, os.PathLike[str]], - outdir: Union[str, os.PathLike[str]], + srcdir: PathType, + outdir: PathType, distributions: Sequence[str], config_settings: Optional[ConfigSettingsType] = None, isolation: bool = True, @@ -205,8 +205,8 @@ def build_package( def build_package_via_sdist( - srcdir: Union[str, os.PathLike[str]], - outdir: Union[str, os.PathLike[str]], + srcdir: PathType, + outdir: PathType, distributions: Sequence[str], config_settings: Optional[ConfigSettingsType] = None, isolation: bool = True, From db2b1a99c3ba2f514b01db4c3c6f6257e30895d0 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:28:21 -0400 Subject: [PATCH 06/14] build.PathType in util.py --- src/build/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/util.py b/src/build/util.py index 55258cff..373b72c5 100644 --- a/src/build/util.py +++ b/src/build/util.py @@ -27,7 +27,7 @@ def _project_wheel_metadata(builder: build.ProjectBuilder) -> 'importlib_metadat def project_wheel_metadata( - srcdir: Union[str, os.PathLike[str]], + srcdir: build.PathType, isolated: bool = True, ) -> 'importlib_metadata.PackageMetadata': """ From 2dab6c1cd6ad730bead896b0c0264fa31e9ce199 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Thu, 21 Oct 2021 22:34:25 -0400 Subject: [PATCH 07/14] add pr number to CHANGELOG --- CHANGELOG.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9c2e7a23..d130845e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,9 +7,9 @@ Unreleased ========== - Accept `os.PathLike[str]` in addition to str for paths in public API - and rename `output_directory` to `outdir` (`PR #TODO`_, Fixes `#372`_) + and rename `output_directory` to `outdir` (`PR #392`_, Fixes `#372`_) -.. _PR #TODO: https://github.com/pypa/build/pull/TODO +.. _PR #392: https://github.com/pypa/build/pull/TODO .. _#372: https://github.com/pypa/build/issues/372 - Add schema validation for ``build-system`` table to check conformity From 8d84257a575f21d678981dc188aa4c21fbb6c5ac Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Fri, 22 Oct 2021 20:22:46 -0400 Subject: [PATCH 08/14] remoev unused import --- src/build/util.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/build/util.py b/src/build/util.py index 373b72c5..f8231ca0 100644 --- a/src/build/util.py +++ b/src/build/util.py @@ -5,8 +5,6 @@ import sys import tempfile -from typing import Union - import pep517 import build From 1465f495990c9788f6f3da37e1a9073137af32f7 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Fri, 22 Oct 2021 20:58:29 -0400 Subject: [PATCH 09/14] quote os.PathLike[str] --- src/build/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/__init__.py b/src/build/__init__.py index 33b7382b..0213c359 100644 --- a/src/build/__init__.py +++ b/src/build/__init__.py @@ -50,7 +50,7 @@ RunnerType = Callable[[Sequence[str], Optional[str], Optional[Mapping[str, str]]], None] ConfigSettingsType = Mapping[str, Union[str, Sequence[str]]] -PathType = Union[str, os.PathLike[str]] +PathType = Union[str, 'os.PathLike[str]'] _ExcInfoType = Union[Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]] From 85aefa86d582351289ecb826c5d47078635b58a8 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Fri, 22 Oct 2021 21:41:47 -0400 Subject: [PATCH 10/14] two backticks instead of one in CHANGELOG --- CHANGELOG.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d130845e..2067228f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,8 +6,8 @@ Changelog Unreleased ========== -- Accept `os.PathLike[str]` in addition to str for paths in public API - and rename `output_directory` to `outdir` (`PR #392`_, Fixes `#372`_) +- Accept ``os.PathLike[str]`` in addition to ``str`` for paths in public API + and rename ``output_directory`` to ``outdir`` (`PR #392`_, Fixes `#372`_) .. _PR #392: https://github.com/pypa/build/pull/TODO .. _#372: https://github.com/pypa/build/issues/372 From 09672c4689cfd80fe55e6a02e82daecbd7750cf0 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Sun, 24 Oct 2021 10:32:22 -0400 Subject: [PATCH 11/14] fix PR link in CHANGELOG --- CHANGELOG.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2067228f..37eea515 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,7 +9,7 @@ Unreleased - Accept ``os.PathLike[str]`` in addition to ``str`` for paths in public API and rename ``output_directory`` to ``outdir`` (`PR #392`_, Fixes `#372`_) -.. _PR #392: https://github.com/pypa/build/pull/TODO +.. _PR #392: https://github.com/pypa/build/pull/392 .. _#372: https://github.com/pypa/build/issues/372 - Add schema validation for ``build-system`` table to check conformity From bf3faf76fb4b452297818c2f21b7f055332676e6 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Mon, 25 Oct 2021 19:01:44 -0400 Subject: [PATCH 12/14] reformat CHANGELOG --- CHANGELOG.rst | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 37eea515..3d6ef3d0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,15 +9,13 @@ Unreleased - Accept ``os.PathLike[str]`` in addition to ``str`` for paths in public API and rename ``output_directory`` to ``outdir`` (`PR #392`_, Fixes `#372`_) -.. _PR #392: https://github.com/pypa/build/pull/392 -.. _#372: https://github.com/pypa/build/issues/372 - - Add schema validation for ``build-system`` table to check conformity with PEP 517 and PEP 518 (`PR #365`_, Fixes `#364`_) .. _PR #365: https://github.com/pypa/build/pull/365 +.. _PR #392: https://github.com/pypa/build/pull/392 .. _#364: https://github.com/pypa/build/issues/364 - +.. _#372: https://github.com/pypa/build/issues/372 0.7.0 (16-09-2021) ================== From c9b778090e1de09bb9b42fe65591ec303dc31322 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Mon, 25 Oct 2021 19:14:55 -0400 Subject: [PATCH 13/14] revert output_directory -> outdir --- CHANGELOG.rst | 4 ++-- src/build/__init__.py | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3d6ef3d0..78db544a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,8 +6,8 @@ Changelog Unreleased ========== -- Accept ``os.PathLike[str]`` in addition to ``str`` for paths in public API - and rename ``output_directory`` to ``outdir`` (`PR #392`_, Fixes `#372`_) +- Accept ``os.PathLike[str]`` in addition to ``str`` for paths in public + API (`PR #392`_, Fixes `#372`_) - Add schema validation for ``build-system`` table to check conformity with PEP 517 and PEP 518 (`PR #365`_, Fixes `#364`_) diff --git a/src/build/__init__.py b/src/build/__init__.py index 0213c359..10785722 100644 --- a/src/build/__init__.py +++ b/src/build/__init__.py @@ -357,13 +357,13 @@ def check_dependencies( return {u for d in dependencies for u in check_dependency(d)} def prepare( - self, distribution: str, outdir: PathType, config_settings: Optional[ConfigSettingsType] = None + self, distribution: str, output_directory: PathType, config_settings: Optional[ConfigSettingsType] = None ) -> Optional[str]: """ Prepare metadata for a distribution. :param distribution: Distribution to build (must be ``wheel``) - :param outdir: Directory to put the prepared metadata in + :param output_directory: Directory to put the prepared metadata in :param config_settings: Config settings for the build backend :returns: The full path to the prepared metadata directory """ @@ -371,7 +371,7 @@ def prepare( try: return self._call_backend( f'prepare_metadata_for_build_{distribution}', - outdir, + output_directory, config_settings, _allow_fallback=False, ) @@ -383,7 +383,7 @@ def prepare( def build( self, distribution: str, - outdir: PathType, + output_directory: PathType, config_settings: Optional[ConfigSettingsType] = None, metadata_directory: Optional[str] = None, ) -> str: @@ -391,7 +391,7 @@ def build( Build a distribution. :param distribution: Distribution to build (``sdist`` or ``wheel``) - :param outdir: Directory to put the built distribution in + :param output_directory: Directory to put the built distribution in :param config_settings: Config settings for the build backend :param metadata_directory: If provided, should be the return value of a previous ``prepare`` call on the same ``distribution`` kind @@ -399,24 +399,24 @@ def build( """ self.log(f'Building {distribution}...') kwargs = {} if metadata_directory is None else {'metadata_directory': metadata_directory} - return self._call_backend(f'build_{distribution}', outdir, config_settings, **kwargs) + return self._call_backend(f'build_{distribution}', output_directory, config_settings, **kwargs) - def metadata_path(self, outdir: PathType) -> str: + def metadata_path(self, output_directory: PathType) -> str: """ Generates the metadata directory of a distribution and returns its path. If the backend does not support the ``prepare_metadata_for_build_wheel`` hook, a wheel will be built and the metadata extracted. - :param outdir: Directory to put the metadata distribution in + :param output_directory: Directory to put the metadata distribution in """ # prepare_metadata hook - metadata = self.prepare('wheel', outdir) + metadata = self.prepare('wheel', output_directory) if metadata is not None: return metadata # fallback to build_wheel hook - wheel = self.build('wheel', outdir) + wheel = self.build('wheel', output_directory) match = _WHEEL_NAME_REGEX.match(os.path.basename(wheel)) if not match: raise ValueError('Invalid wheel') @@ -424,10 +424,10 @@ def metadata_path(self, outdir: PathType) -> str: member_prefix = f'{distinfo}/' with zipfile.ZipFile(wheel) as w: w.extractall( - outdir, + output_directory, (member for member in w.namelist() if member.startswith(member_prefix)), ) - return os.path.join(outdir, distinfo) + return os.path.join(output_directory, distinfo) def _call_backend( self, hook_name: str, outdir: PathType, config_settings: Optional[ConfigSettingsType] = None, **kwargs: Any From 476bc9c967993ff9d8b5ebbab9c5dc5cff6527e1 Mon Sep 17 00:00:00 2001 From: Bernie Gray Date: Mon, 25 Oct 2021 19:15:31 -0400 Subject: [PATCH 14/14] add back newline --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 78db544a..df1b4478 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -17,6 +17,7 @@ Unreleased .. _#364: https://github.com/pypa/build/issues/364 .. _#372: https://github.com/pypa/build/issues/372 + 0.7.0 (16-09-2021) ==================