chore: 添加虚拟环境到仓库
- 添加 backend_service/venv 虚拟环境 - 包含所有Python依赖包 - 注意:虚拟环境约393MB,包含12655个文件
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pathlib
|
||||
import tempfile
|
||||
|
||||
import pyproject_hooks
|
||||
|
||||
from . import ProjectBuilder
|
||||
from ._compat import importlib
|
||||
from ._types import StrPath, SubprocessRunner
|
||||
from .env import DefaultIsolatedEnv
|
||||
|
||||
|
||||
def _project_wheel_metadata(builder: ProjectBuilder) -> importlib.metadata.PackageMetadata:
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
path = pathlib.Path(builder.metadata_path(tmpdir))
|
||||
metadata = importlib.metadata.PathDistribution(path).metadata
|
||||
assert metadata is not None
|
||||
return metadata
|
||||
|
||||
|
||||
def project_wheel_metadata(
|
||||
source_dir: StrPath,
|
||||
isolated: bool = True,
|
||||
*,
|
||||
runner: SubprocessRunner = pyproject_hooks.quiet_subprocess_runner,
|
||||
) -> importlib.metadata.PackageMetadata:
|
||||
"""
|
||||
Return the wheel metadata for a project.
|
||||
|
||||
Uses the ``prepare_metadata_for_build_wheel`` hook if available,
|
||||
otherwise ``build_wheel``.
|
||||
|
||||
:param source_dir: Project source directory
|
||||
:param isolated: Whether or not to run invoke the backend in the current
|
||||
environment or to create an isolated one and invoke it
|
||||
there.
|
||||
:param runner: An alternative runner for backend subprocesses
|
||||
"""
|
||||
|
||||
if isolated:
|
||||
with DefaultIsolatedEnv() as env:
|
||||
builder = ProjectBuilder.from_isolated_env(
|
||||
env,
|
||||
source_dir,
|
||||
runner=runner,
|
||||
)
|
||||
env.install(builder.build_system_requires)
|
||||
env.install(builder.get_requires_for_build('wheel'))
|
||||
return _project_wheel_metadata(builder)
|
||||
else:
|
||||
builder = ProjectBuilder(
|
||||
source_dir,
|
||||
runner=runner,
|
||||
)
|
||||
return _project_wheel_metadata(builder)
|
||||
|
||||
|
||||
__all__ = [
|
||||
'project_wheel_metadata',
|
||||
]
|
||||
Reference in New Issue
Block a user