未验证 提交 2f8bba9e 编写于 作者: F Frost Ming

version from speicified file

上级 eb18d33a
__version__ = "0.1.0" __version__ = "0.1.1-dev"
...@@ -326,7 +326,7 @@ class Builder: ...@@ -326,7 +326,7 @@ class Builder:
return content return content
def ensure_setup_py(self) -> None: def ensure_setup_py(self, clean: bool = True) -> None:
"""Ensures the requirement has a setup.py ready.""" """Ensures the requirement has a setup.py ready."""
# XXX: Currently only handle PDM project, and do nothing if not. # XXX: Currently only handle PDM project, and do nothing if not.
...@@ -348,4 +348,5 @@ class Builder: ...@@ -348,4 +348,5 @@ class Builder:
def cleanup(): def cleanup():
os.unlink(setup_py_path) os.unlink(setup_py_path)
atexit.register(cleanup) if clean:
atexit.register(cleanup)
...@@ -3,6 +3,8 @@ import tarfile ...@@ -3,6 +3,8 @@ import tarfile
import tempfile import tempfile
from copy import copy from copy import copy
from pkg_resources import to_filename, safe_version
from pdm.builders.base import Builder from pdm.builders.base import Builder
from pdm.context import context from pdm.context import context
...@@ -50,14 +52,15 @@ class SdistBuilder(Builder): ...@@ -50,14 +52,15 @@ class SdistBuilder(Builder):
os.makedirs(build_dir, exist_ok=True) os.makedirs(build_dir, exist_ok=True)
context.io.echo("- Building {}...".format(context.io.cyan("sdist"))) context.io.echo("- Building {}...".format(context.io.cyan("sdist")))
version = to_filename(safe_version(self.meta.version))
target = os.path.join( target = os.path.join(
build_dir, "{}-{}.tar.gz".format(self.meta.project_name, self.meta.version) build_dir, "{}-{}.tar.gz".format(self.meta.project_name, version)
) )
tar = tarfile.open(target, mode="w:gz", format=tarfile.PAX_FORMAT) tar = tarfile.open(target, mode="w:gz", format=tarfile.PAX_FORMAT)
try: try:
tar_dir = "{}-{}".format(self.meta.project_name, self.meta.version) tar_dir = "{}-{}".format(self.meta.project_name, version)
files_to_add = self.find_files_to_add(True) files_to_add = self.find_files_to_add(True)
......
...@@ -43,7 +43,18 @@ class PackageMeta: ...@@ -43,7 +43,18 @@ class PackageMeta:
self.project = project self.project = project
name = MetaField("name") name = MetaField("name")
version = MetaField("version")
def _get_version(self, value):
if isinstance(value, str):
return value
version_source = value.get("from")
with open(version_source, encoding="utf-8") as fp:
version = re.findall(
r"^__version__\s*=\s*[\"'](.+?)[\"']\s*$", fp.read(), re.M
)[0]
return version
version = MetaField("version", _get_version)
homepage = MetaField("homepage") homepage = MetaField("homepage")
license = MetaField("license") license = MetaField("license")
......
[tool.pdm] [tool.pdm]
name = "pdm" name = "pdm"
version = "0.1.0" version = {from = "pdm/__init__.py"}
description = "Python Development Master" description = "Python Development Master"
author = "frostming <mianghong@gmail.com>" author = "frostming <mianghong@gmail.com>"
license = "MIT" license = "MIT"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册