Code Duplication    Length = 15-16 lines in 2 locations

src/hunter/predicates.py 2 locations

@@ 127-142 (lines=16) @@
124
        self.query_gt = tuple(sorted(query_gt.items()))
125
        self.query_gte = tuple(sorted(query_gte.items()))
126
127
    def __str__(self):
128
        return 'Query(%s)' % (
129
            ', '.join(
130
                ', '.join('%s%s=%r' % (key, kind, value) for key, value in mapping)
131
                for kind, mapping in [
132
                    ('', self.query_eq),
133
                    ('_in', self.query_in),
134
                    ('_contains', self.query_contains),
135
                    ('_startswith', self.query_startswith),
136
                    ('_endswith', self.query_endswith),
137
                    ('_regex', self.query_regex),
138
                    ('_lt', self.query_lt),
139
                    ('_lte', self.query_lte),
140
                    ('_gt', self.query_gt),
141
                    ('_gte', self.query_gte),
142
                ] if mapping
143
            )
144
        )
145
@@ 146-160 (lines=15) @@
143
            )
144
        )
145
146
    def __repr__(self):
147
        return '<hunter.predicates.Query: %s>' % ' '.join(
148
            fmt % (mapping,) for fmt, mapping in [
149
                ('query_eq=%r', self.query_eq),
150
                ('query_in=%r', self.query_in),
151
                ('query_contains=%r', self.query_contains),
152
                ('query_startswith=%r', self.query_startswith),
153
                ('query_endswith=%r', self.query_endswith),
154
                ('query_regex=%r', self.query_regex),
155
                ('query_regex=%r', self.query_regex),
156
                ('query_lt=%r', self.query_lt),
157
                ('query_lte=%r', self.query_lte),
158
                ('query_gt=%r', self.query_gt),
159
                ('query_gte=%r', self.query_gte),
160
            ] if mapping
161
        )
162
163
    def __call__(self, event):