Code Duplication    Length = 15-16 lines in 2 locations

src/hunter/predicates.py 2 locations

@@ 111-126 (lines=16) @@
108
        self.query_gt = tuple(sorted(query_gt.items()))
109
        self.query_gte = tuple(sorted(query_gte.items()))
110
111
    def __str__(self):
112
        return 'Query(%s)' % (
113
            ', '.join(
114
                ', '.join('%s%s=%r' % (key, kind, value) for key, value in mapping)
115
                for kind, mapping in [
116
                    ('', self.query_eq),
117
                    ('_in', self.query_in),
118
                    ('_contains', self.query_contains),
119
                    ('_startswith', self.query_startswith),
120
                    ('_endswith', self.query_endswith),
121
                    ('_regex', self.query_regex),
122
                    ('_lt', self.query_lt),
123
                    ('_lte', self.query_lte),
124
                    ('_gt', self.query_gt),
125
                    ('_gte', self.query_gte),
126
                ] if mapping
127
            )
128
        )
129
@@ 130-144 (lines=15) @@
127
            )
128
        )
129
130
    def __repr__(self):
131
        return '<hunter.predicates.Query: %s>' % ' '.join(
132
            fmt % (mapping,) for fmt, mapping in [
133
                ('query_eq=%r', self.query_eq),
134
                ('query_in=%r', self.query_in),
135
                ('query_contains=%r', self.query_contains),
136
                ('query_startswith=%r', self.query_startswith),
137
                ('query_endswith=%r', self.query_endswith),
138
                ('query_regex=%r', self.query_regex),
139
                ('query_regex=%r', self.query_regex),
140
                ('query_lt=%r', self.query_lt),
141
                ('query_lte=%r', self.query_lte),
142
                ('query_gt=%r', self.query_gt),
143
                ('query_gte=%r', self.query_gte),
144
            ] if mapping
145
        )
146
147
    def __call__(self, event):