In some cases, the reasons of impurity are not propagated at all. This is undesirable because it will lead to impure functions wrongly being classified as pure.
Here are some examples of these cases:
# seaborn_v0.12.2._core.properties.get_mapping.764.4
def get_mapping(self, scale: Scale, data: Series) -> Mapping:
"""Return a function that maps each data value to True or False."""
boolean_scale = isinstance(scale, Boolean)
order = getattr(scale, "order", [True, False] if boolean_scale else None) # Impure Builtin not propagated
levels = categorical_order(data, order)
values = self._get_values(scale, levels) # Impure Call not propagated
Describe the bug
In some cases, the reasons of impurity are not propagated at all. This is undesirable because it will lead to impure functions wrongly being classified as pure. Here are some examples of these cases:
Others:
To Reproduce
Expected behavior
The reasons of impurity must be propagated correctly.
Screenshots (optional)
No response
Additional Context (optional)
There is no pattern detectable in which the reasons are not propagated correctly.