Completed
Push — issue#20 ( 77cbd3...88199f )
by Felipe A.
43s
created

Config.update()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 2
rs 10
cc 1
1
import flask
2
import flask.config
3
4
from .compat import basestring
5
6
7
class Config(flask.config.Config):
8
    def __init__(self, root, defaults=None):
9
        if defaults:
10
            defaults = self.gendict(defaults)
11
        super(Config, self).__init__(root, defaults)
12
13
    @classmethod
14
    def genkey(cls, k):
15
        return k.upper() if isinstance(k, basestring) else k
16
17
    @classmethod
18
    def gendict(cls, *args, **kwargs):
19
        gk = cls.genkey
20
        return dict((gk(k), v) for k, v in dict(*args, **kwargs).items())
21
22
    def __getitem__(self, k):
23
        return super(Config, self).__getitem__(self.genkey(k))
24
25
    def __setitem__(self, k, v):
26
        super(Config, self).__setitem__(self.genkey(k), v)
27
28
    def __delitem__(self, k):
29
        super(Config, self).__delitem__(self.genkey(k))
30
31
    def update(self, *args, **kwargs):
32
        super(Config, self).update(self.gendict(*args, **kwargs))
33
34
35
class Flask(flask.Flask):
36
    config_class = Config