Skip to content

Commit 4014d4d

Browse files
unify configruation initialization and configuration defaults
1 parent b7abd45 commit 4014d4d

File tree

3 files changed

+41
-47
lines changed

3 files changed

+41
-47
lines changed

src/setuptools_scm/__init__.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
import os
66
import warnings
77

8-
from .config import Configuration
8+
from .config import (
9+
Configuration,
10+
DEFAULT_VERSION_SCHEME,
11+
DEFAULT_LOCAL_SCHEME,
12+
DEFAULT_TAG_REGEX,
13+
)
914
from .utils import function_has_arg, string_types
1015
from .version import format_version, meta
1116
from .discover import iter_matching_entrypoints
@@ -116,12 +121,12 @@ def _do_parse(config):
116121

117122
def get_version(
118123
root=".",
119-
version_scheme="guess-next-dev",
120-
local_scheme="node-and-date",
124+
version_scheme=DEFAULT_VERSION_SCHEME,
125+
local_scheme=DEFAULT_LOCAL_SCHEME,
121126
write_to=None,
122127
write_to_template=None,
123128
relative_to=None,
124-
tag_regex=None,
129+
tag_regex=DEFAULT_TAG_REGEX,
125130
fallback_version=None,
126131
fallback_root=".",
127132
parse=None,
@@ -134,18 +139,7 @@ def get_version(
134139
root of the repository by supplying ``__file__``.
135140
"""
136141

137-
config = Configuration()
138-
config.root = root
139-
config.fallback_root = fallback_root
140-
config.version_scheme = version_scheme
141-
config.local_scheme = local_scheme
142-
config.write_to = write_to
143-
config.write_to_template = write_to_template
144-
config.relative_to = relative_to
145-
config.tag_regex = tag_regex
146-
config.fallback_version = fallback_version
147-
config.parse = parse
148-
config.git_describe_command = git_describe_command
142+
config = Configuration(**locals())
149143
return _get_version(config)
150144

151145

src/setuptools_scm/config.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from .utils import trace
88

99
DEFAULT_TAG_REGEX = r"^(?:[\w-]+-)?(?P<version>[vV]?\d+(?:\.\d+){0,2}[^\+]+)(?:\+.*)?$"
10-
DEFAULT_VERSION_SCHEME = "version_scheme"
10+
DEFAULT_VERSION_SCHEME = "guess-next-dev"
11+
DEFAULT_LOCAL_SCHEME = "node-and-date"
1112

1213

1314
def _check_tag_regex(value):
@@ -39,32 +40,34 @@ def _check_absolute_root(root, relative_to):
3940
class Configuration(object):
4041
""" Global configuration model """
4142

42-
_root = None
43-
version_scheme = None
44-
local_scheme = None
45-
write_to = None
46-
write_to_template = None
47-
fallback_version = None
48-
_relative_to = None
49-
parse = None
50-
_tag_regex = None
51-
_absolute_root = None
52-
53-
def __init__(self, relative_to=None, root="."):
43+
def __init__(
44+
self,
45+
relative_to=None,
46+
root=".",
47+
version_scheme=DEFAULT_VERSION_SCHEME,
48+
local_scheme=DEFAULT_LOCAL_SCHEME,
49+
write_to=None,
50+
write_to_template=None,
51+
tag_regex=DEFAULT_TAG_REGEX,
52+
fallback_version=None,
53+
fallback_root=".",
54+
parse=None,
55+
git_describe_command=None,
56+
):
5457
# TODO:
5558
self._relative_to = relative_to
5659
self._root = "."
5760

5861
self.root = root
59-
self.version_scheme = DEFAULT_VERSION_SCHEME
60-
self.local_scheme = "node-and-date"
61-
self.write_to = ""
62-
self.write_to_template = None
63-
self.fallback_version = None
64-
self.fallback_root = "."
65-
self.parse = None
62+
self.version_scheme = version_scheme
63+
self.local_scheme = local_scheme
64+
self.write_to = write_to
65+
self.write_to_template = write_to_template
66+
self.fallback_version = fallback_version
67+
self.fallback_root = fallback_root
68+
self.parse = parse
6669
self.tag_regex = DEFAULT_TAG_REGEX
67-
self.git_describe_command = None
70+
self.git_describe_command = git_describe_command
6871

6972
@property
7073
def fallback_root(self):
@@ -106,10 +109,6 @@ def tag_regex(self):
106109
def tag_regex(self, value):
107110
self._tag_regex = _check_tag_regex(value)
108111

109-
def _load(self, values):
110-
vars(self).update(values)
111-
return self
112-
113112
@classmethod
114113
def from_file(cls, name="pyproject.toml"):
115114
"""
@@ -120,4 +119,5 @@ def from_file(cls, name="pyproject.toml"):
120119
"""
121120
with open(name) as strm:
122121
defn = __import__("toml").load(strm)
123-
return cls()._load(defn.get("tool", {})["setuptools_scm"])
122+
section = defn.get("tool", {})["setuptools_scm"]
123+
return cls(**section)

src/setuptools_scm/integration.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from .version import _warn_if_setuptools_outdated
44
from .utils import do, trace_exception
5-
from . import get_version
5+
from . import _get_version, Configuration
66

77

88
def version_keyword(dist, keyword, value):
@@ -13,8 +13,8 @@ def version_keyword(dist, keyword, value):
1313
value = {}
1414
if getattr(value, "__call__", None):
1515
value = value()
16-
17-
dist.metadata.version = get_version(**value)
16+
config = Configuration(**value)
17+
dist.metadata.version = _get_version(config)
1818

1919

2020
def find_files(path=""):
@@ -42,7 +42,7 @@ def _args_from_toml(name="pyproject.toml"):
4242
def infer_version(dist):
4343

4444
try:
45-
args = _args_from_toml()
45+
config = Configuration.from_file()
4646
except Exception:
4747
return trace_exception()
48-
dist.metadata.version = get_version(**args)
48+
dist.metadata.version = _get_version(config)

0 commit comments

Comments
 (0)