| 39 | |
| 40 | |
| 41 | class PathFilter( |
| 42 | StartPointMixin, |
| 43 | EndPointMixin, |
| 44 | TargetEventDerivedMixin, |
| 45 | ComparatorDerivedMixin, |
| 46 | PropTypeDerivedMixin, |
| 47 | PropertyMixin, |
| 48 | IntervalMixin, |
| 49 | InsightMixin, |
| 50 | FilterTestAccountsMixin, |
| 51 | DateMixin, |
| 52 | BreakdownMixin, |
| 53 | EntitiesMixin, |
| 54 | PathStepLimitMixin, |
| 55 | FunnelPathsMixin, |
| 56 | TargetEventsMixin, |
| 57 | FunnelWindowMixin, |
| 58 | FunnelPersonsStepMixin, |
| 59 | PathGroupingMixin, |
| 60 | PathReplacementMixin, |
| 61 | LocalPathCleaningFiltersMixin, |
| 62 | PathPersonsMixin, |
| 63 | LimitMixin, |
| 64 | OffsetMixin, |
| 65 | PathLimitsMixin, |
| 66 | GroupsAggregationMixin, |
| 67 | FunnelCorrelationMixin, # Typing pain because ColumnOptimizer expects a uniform filter |
| 68 | ClientQueryIdMixin, |
| 69 | SimplifyFilterMixin, |
| 70 | IncludeRecordingsMixin, |
| 71 | SearchMixin, |
| 72 | # TODO: proper fix for EventQuery abstraction |
| 73 | BaseFilter, |
| 74 | ): |
| 75 | def __init__(self, data: Optional[Dict[str, Any]] = None, request: Optional[Request] = None, **kwargs) -> None: |
| 76 | if data: |
| 77 | data["insight"] = INSIGHT_PATHS |
| 78 | else: |
| 79 | data = {"insight": INSIGHT_PATHS} |
| 80 | super().__init__(data, request, **kwargs) |
no outgoing calls
searching dependent graphs…