def dependencies(self): """Set of attributes that the `attribute` depends on. If the `attribute` is an expresion, then returns the direct dependencies from the expression. If the attribute is an aggregate with an unary function operating on a measure, then the measure is considered as a dependency. Attribute can't have both expression and measure specified, since you can have only expression or an function, not both. """ if not self.expression: return set() return inspect_variables(self.expression)