Completed
Pull Request — master (#143)
by Jasper
01:57
created

Query   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 26
rs 10
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __iter__() 0 2 1
A __init__() 0 3 1
A byModality() 0 3 1
A getFields() 0 2 1
A __len__() 0 2 1
A byUser() 0 3 1
A byProject() 0 3 1
1
from collections import namedtuple
2
QueryField = namedtuple('QueryField', ['name', 'value'])
3
4
class Query(object):
5
6
    def __init__(self, dependencies):
7
        self.fields = []
8
        self.repository = dependencies.getRepository()
9
10
    def __iter__(self):
11
        return self.repository.inquire(self).__iter__()
12
13
    def __len__(self):
14
        return len(self.repository.inquire(self))
15
16
    def getFields(self):
17
        return self.fields
18
19
    def byModality(self, val):
20
        self.fields.append(QueryField('modality', val))
21
        return self
22
23
    def byProject(self, val):
24
        self.fields.append(QueryField('project', val))
25
        return self
26
27
    def byUser(self, val):
28
        self.fields.append(QueryField('user', val))
29
        return self
30