diff options
author | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2019-11-28 20:58:36 +0100 |
---|---|---|
committer | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2019-11-28 20:58:36 +0100 |
commit | 4014d4d27ddf7d39fa2b406ecde855efe58d1ae0 (patch) | |
tree | 917023086a78adec7e78ad94f5a92700331b2f09 | |
parent | b7abd455dfa323cda75f903c4e6bb5c11b900e1d (diff) | |
download | setuptools-scm-4014d4d27ddf7d39fa2b406ecde855efe58d1ae0.tar.gz |
unify configruation initialization and configuration defaultsfix-374
-rw-r--r-- | src/setuptools_scm/__init__.py | 26 | ||||
-rw-r--r-- | src/setuptools_scm/config.py | 52 | ||||
-rw-r--r-- | src/setuptools_scm/integration.py | 10 |
3 files changed, 41 insertions, 47 deletions
diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py index 2e05006..eebd9bb 100644 --- a/src/setuptools_scm/__init__.py +++ b/src/setuptools_scm/__init__.py @@ -5,7 +5,12 @@ import os import warnings -from .config import Configuration +from .config import ( + Configuration, + DEFAULT_VERSION_SCHEME, + DEFAULT_LOCAL_SCHEME, + DEFAULT_TAG_REGEX, +) from .utils import function_has_arg, string_types from .version import format_version, meta from .discover import iter_matching_entrypoints @@ -116,12 +121,12 @@ def _do_parse(config): def get_version( root=".", - version_scheme="guess-next-dev", - local_scheme="node-and-date", + version_scheme=DEFAULT_VERSION_SCHEME, + local_scheme=DEFAULT_LOCAL_SCHEME, write_to=None, write_to_template=None, relative_to=None, - tag_regex=None, + tag_regex=DEFAULT_TAG_REGEX, fallback_version=None, fallback_root=".", parse=None, @@ -134,18 +139,7 @@ def get_version( root of the repository by supplying ``__file__``. """ - config = Configuration() - config.root = root - config.fallback_root = fallback_root - config.version_scheme = version_scheme - config.local_scheme = local_scheme - config.write_to = write_to - config.write_to_template = write_to_template - config.relative_to = relative_to - config.tag_regex = tag_regex - config.fallback_version = fallback_version - config.parse = parse - config.git_describe_command = git_describe_command + config = Configuration(**locals()) return _get_version(config) diff --git a/src/setuptools_scm/config.py b/src/setuptools_scm/config.py index d548c81..7dee1e4 100644 --- a/src/setuptools_scm/config.py +++ b/src/setuptools_scm/config.py @@ -7,7 +7,8 @@ import warnings from .utils import trace DEFAULT_TAG_REGEX = r"^(?:[\w-]+-)?(?P<version>[vV]?\d+(?:\.\d+){0,2}[^\+]+)(?:\+.*)?$" -DEFAULT_VERSION_SCHEME = "version_scheme" +DEFAULT_VERSION_SCHEME = "guess-next-dev" +DEFAULT_LOCAL_SCHEME = "node-and-date" def _check_tag_regex(value): @@ -39,32 +40,34 @@ def _check_absolute_root(root, relative_to): class Configuration(object): """ Global configuration model """ - _root = None - version_scheme = None - local_scheme = None - write_to = None - write_to_template = None - fallback_version = None - _relative_to = None - parse = None - _tag_regex = None - _absolute_root = None - - def __init__(self, relative_to=None, root="."): + def __init__( + self, + relative_to=None, + root=".", + version_scheme=DEFAULT_VERSION_SCHEME, + local_scheme=DEFAULT_LOCAL_SCHEME, + write_to=None, + write_to_template=None, + tag_regex=DEFAULT_TAG_REGEX, + fallback_version=None, + fallback_root=".", + parse=None, + git_describe_command=None, + ): # TODO: self._relative_to = relative_to self._root = "." self.root = root - self.version_scheme = DEFAULT_VERSION_SCHEME - self.local_scheme = "node-and-date" - self.write_to = "" - self.write_to_template = None - self.fallback_version = None - self.fallback_root = "." - self.parse = None + self.version_scheme = version_scheme + self.local_scheme = local_scheme + self.write_to = write_to + self.write_to_template = write_to_template + self.fallback_version = fallback_version + self.fallback_root = fallback_root + self.parse = parse self.tag_regex = DEFAULT_TAG_REGEX - self.git_describe_command = None + self.git_describe_command = git_describe_command @property def fallback_root(self): @@ -106,10 +109,6 @@ class Configuration(object): def tag_regex(self, value): self._tag_regex = _check_tag_regex(value) - def _load(self, values): - vars(self).update(values) - return self - @classmethod def from_file(cls, name="pyproject.toml"): """ @@ -120,4 +119,5 @@ class Configuration(object): """ with open(name) as strm: defn = __import__("toml").load(strm) - return cls()._load(defn.get("tool", {})["setuptools_scm"]) + section = defn.get("tool", {})["setuptools_scm"] + return cls(**section) diff --git a/src/setuptools_scm/integration.py b/src/setuptools_scm/integration.py index 41dcbbb..c623db7 100644 --- a/src/setuptools_scm/integration.py +++ b/src/setuptools_scm/integration.py @@ -2,7 +2,7 @@ from pkg_resources import iter_entry_points from .version import _warn_if_setuptools_outdated from .utils import do, trace_exception -from . import get_version +from . import _get_version, Configuration def version_keyword(dist, keyword, value): @@ -13,8 +13,8 @@ def version_keyword(dist, keyword, value): value = {} if getattr(value, "__call__", None): value = value() - - dist.metadata.version = get_version(**value) + config = Configuration(**value) + dist.metadata.version = _get_version(config) def find_files(path=""): @@ -42,7 +42,7 @@ def _args_from_toml(name="pyproject.toml"): def infer_version(dist): try: - args = _args_from_toml() + config = Configuration.from_file() except Exception: return trace_exception() - dist.metadata.version = get_version(**args) + dist.metadata.version = _get_version(config) |