StringEntry   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 6
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 2
c 2
b 0
f 0
dl 0
loc 6
ccs 0
cts 0
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A __get__() 0 5 2
1
# -*- coding: utf-8 -*-
2 15
from werobot.utils import to_text
3
4
5 15
def get_value(instance, path, default=None):
6 15
    dic = instance.__dict__
7 15
    for entry in path.split('.'):
8 15
        dic = dic.get(entry)
9
        if dic is None:
10
            return default
11 15
    return dic or default
12 15
13 15
14 15
class BaseEntry(object):
15 15
    def __init__(self, entry, default=None):
16 15
        self.entry = entry
17 15
        self.default = default
18
19
20 15
class IntEntry(BaseEntry):
21 15
    def __get__(self, instance, owner):
22 15
        try:
23 15
            return int(get_value(instance, self.entry, self.default))
24 15
        except TypeError:
25 15
            return
26 15
27
28
class FloatEntry(BaseEntry):
29 15
    def __get__(self, instance, owner):
30 15
        try:
31 15
            return float(get_value(instance, self.entry, self.default))
32 15
        except TypeError:
33 15
            return
34 15
35
36
class StringEntry(BaseEntry):
37
    def __get__(self, instance, owner):
38
        v = get_value(instance, self.entry, self.default)
39
        if v is not None:
40
            return to_text(v)
41
        return v
42