(self, f)
| 26 | self.slice = {} |
| 27 | |
| 28 | def __add__(self, f): |
| 29 | if isinstance(f.value, dict): |
| 30 | for field in f.fields: |
| 31 | self.slice[field] = f.value |
| 32 | if not self.fields: |
| 33 | self.fields = f.fields |
| 34 | elif not self.fields: |
| 35 | self.fields = f.fields |
| 36 | self.value = f.value |
| 37 | self.slice = {} |
| 38 | elif self.value is self.ONLY and f.value is self.ONLY: |
| 39 | self._clean_slice() |
| 40 | if self._only_called: |
| 41 | self.fields = self.fields.union(f.fields) |
| 42 | else: |
| 43 | self.fields = f.fields |
| 44 | elif self.value is self.EXCLUDE and f.value is self.EXCLUDE: |
| 45 | self.fields = self.fields.union(f.fields) |
| 46 | self._clean_slice() |
| 47 | elif self.value is self.ONLY and f.value is self.EXCLUDE: |
| 48 | self.fields -= f.fields |
| 49 | self._clean_slice() |
| 50 | elif self.value is self.EXCLUDE and f.value is self.ONLY: |
| 51 | self.value = self.ONLY |
| 52 | self.fields = f.fields - self.fields |
| 53 | self._clean_slice() |
| 54 | |
| 55 | if "_id" in f.fields: |
| 56 | self._id = f.value |
| 57 | |
| 58 | if self.always_include: |
| 59 | if self.value is self.ONLY and self.fields: |
| 60 | if sorted(self.slice.keys()) != sorted(self.fields): |
| 61 | self.fields = self.fields.union(self.always_include) |
| 62 | else: |
| 63 | self.fields -= self.always_include |
| 64 | |
| 65 | if getattr(f, "_only_called", False): |
| 66 | self._only_called = True |
| 67 | return self |
| 68 | |
| 69 | def __bool__(self): |
| 70 | return bool(self.fields) |
nothing calls this directly
no test coverage detected