diff --git a/jaraco/packaging/metadata.py b/jaraco/packaging/metadata.py new file mode 100644 index 0000000..f5dabbe --- /dev/null +++ b/jaraco/packaging/metadata.py @@ -0,0 +1,14 @@ +import os + +from build import util + + +def load( + source_dir: util.StrPath, + isolated: bool = os.environ.get('BUILD_ENVIRONMENT', 'isolated') == 'isolated', + **kwargs, +): + """ + Allow overriding the isolation behavior at the enviroment level. + """ + return util.project_wheel_metadata(source_dir, isolated, **kwargs) diff --git a/jaraco/packaging/sphinx.py b/jaraco/packaging/sphinx.py index 0cbe246..a1f2583 100644 --- a/jaraco/packaging/sphinx.py +++ b/jaraco/packaging/sphinx.py @@ -16,9 +16,10 @@ import sphinx.util.docutils from docutils.parsers.rst import directives -from build.util import project_wheel_metadata as load_metadata from jaraco.context import suppress +from .metadata import load + def setup(app): app.add_config_value('package_url', '', '') @@ -97,7 +98,8 @@ def _load_metadata_from_wheel(): """ wheel = os.environ['JARACO_PACKAGING_SPHINX_WHEEL'] warnings.warn( - "JARACO_PACKAGING_SPHINX_WHEEL is deprecated; fix pypa/build#556 instead", + "JARACO_PACKAGING_SPHINX_WHEEL is deprecated; " + "use BUILD_ENVIRONMENT=current instead", DeprecationWarning, ) (dist,) = metadata.distributions(path=[wheel]) @@ -110,7 +112,7 @@ def load_config_from_setup(app): """ # for now, assume project root is one level up root = os.path.join(app.confdir, '..') - meta = _load_metadata_from_wheel() or load_metadata(root) + meta = _load_metadata_from_wheel() or load(root) app.config.project = meta['Name'] app.config.version = app.config.release = meta['Version'] app.config.package_url = meta['Home-page'] diff --git a/newsfragments/556.feature.rst b/newsfragments/556.feature.rst new file mode 100644 index 0000000..477ff2a --- /dev/null +++ b/newsfragments/556.feature.rst @@ -0,0 +1 @@ +Add ``metadata.load`` for loading metadata from a source dir with support for a BUILD_ENVIRONMENT setting. Set BUILD_ENVIRONMENT=current to bypass isolation when loading metadata. Ref pypa/build#556. \ No newline at end of file