ConfigDict.__call__()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
c 0
b 0
f 0
dl 0
loc 9
rs 9.95
1
#!/usr/bin/env python
2
# coding=utf-8
3
from __future__ import division, print_function, unicode_literals
4
5
from sacred.config.config_summary import ConfigSummary
6
from sacred.config.utils import dogmatize, normalize_or_die, undogmatize
7
8
9
class ConfigDict(object):
10
    def __init__(self, d):
11
        super(ConfigDict, self).__init__()
12
        self._conf = normalize_or_die(d)
13
14
    def __call__(self, fixed=None, preset=None, fallback=None):
15
        result = dogmatize(fixed or {})
16
        result.update(preset)
17
        result.update(self._conf)
18
        added = result.revelation()
19
        config_summary = ConfigSummary(added, result.modified,
20
                                       result.typechanges)
21
        config_summary.update(undogmatize(result))
22
        return config_summary
23