Skip to content

Commit

Permalink
Add metadata.load for loading metadata from a source dir with sup…
Browse files Browse the repository at this point in the history
…port for a BUILD_ENVIRONMENT setting. Set BUILD_ENVIRONMENT=current to bypass isolation when loading metadata. Ref pypa/build#556.
  • Loading branch information
jaraco committed Mar 31, 2024
1 parent f85ae83 commit 9949286
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
14 changes: 14 additions & 0 deletions jaraco/packaging/metadata.py
Original file line number Diff line number Diff line change
@@ -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)
8 changes: 5 additions & 3 deletions jaraco/packaging/sphinx.py
Original file line number Diff line number Diff line change
Expand Up @@ -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', '', '')
Expand Down Expand Up @@ -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])
Expand All @@ -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']
Expand Down
1 change: 1 addition & 0 deletions newsfragments/556.feature.rst
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 9949286

Please sign in to comment.