Skip to content

Commit 082d02f

Browse files
michaelosthegebrandonwillard
authored andcommitted
Pass instance when calling getter/setter
1 parent 755f385 commit 082d02f

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

tests/test_config.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ def test_config_hash():
103103
assert h2 == h0
104104

105105

106+
def test_config_print():
107+
root = configparser.config
108+
result = str(root)
109+
assert isinstance(result, str)
110+
111+
106112
class TestConfigTypes:
107113
def test_bool(self):
108114
valids = {

theano/configparser.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def __init__(self, *args, _root=None, **kwargs):
2727
args.update(kwargs)
2828
self.confs = {k: _root._config_var_dict[k] for k in args}
2929
self.new_vals = args
30+
self._root = _root
3031

3132
def __call__(self, f):
3233
@wraps(f)
@@ -39,18 +40,18 @@ def res(*args, **kwargs):
3940
def __enter__(self):
4041
self.old_vals = {}
4142
for k, v in self.confs.items():
42-
self.old_vals[k] = v.__get__(True, None)
43+
self.old_vals[k] = v.__get__(self._root, self._root.__class__)
4344
try:
4445
for k, v in self.confs.items():
45-
v.__set__(None, self.new_vals[k])
46+
v.__set__(self._root, self.new_vals[k])
4647
except Exception:
4748
_logger.error(f"Failed to change flags for {self.confs}.")
4849
self.__exit__()
4950
raise
5051

5152
def __exit__(self, *args):
5253
for k, v in self.confs.items():
53-
v.__set__(None, self.old_vals[k])
54+
v.__set__(self._root, self.old_vals[k])
5455

5556

5657
def _hash_from_code(msg):
@@ -84,7 +85,7 @@ def config_print(self, buf, print_doc=True):
8485
print(cv, file=buf)
8586
if print_doc:
8687
print(" Doc: ", cv.doc, file=buf)
87-
print(" Value: ", cv.__get__(True, None), file=buf)
88+
print(" Value: ", cv.__get__(self, self.__class__), file=buf)
8889
print("", file=buf)
8990

9091
def get_config_hash(self):
@@ -104,7 +105,7 @@ def get_config_hash(self):
104105
return _hash_from_code(
105106
"\n".join(
106107
[
107-
"{} = {}".format(cv.fullname, cv.__get__(True, None))
108+
"{} = {}".format(cv.fullname, cv.__get__(self, self.__class__))
108109
for cv in all_opts
109110
]
110111
)

0 commit comments

Comments
 (0)