1234567891011121314151617181920212223242526272829303132 |
- """
- Custom exceptions for the seaborn.objects interface.
- This is very lightweight, but it's a separate module to avoid circular imports.
- """
- from __future__ import annotations
- class PlotSpecError(RuntimeError):
- """
- Error class raised from seaborn.objects.Plot for compile-time failures.
- In the declarative Plot interface, exceptions may not be triggered immediately
- by bad user input (and validation at input time may not be possible). This class
- is used to signal that indirect dependency. It should be raised in an exception
- chain when compile-time operations fail with an error message providing useful
- context (e.g., scaling errors could specify the variable that failed.)
- """
- @classmethod
- def _during(cls, step: str, var: str = "") -> PlotSpecError:
- """
- Initialize the class to report the failure of a specific operation.
- """
- message = []
- if var:
- message.append(f"{step} failed for the `{var}` variable.")
- else:
- message.append(f"{step} failed.")
- message.append("See the traceback above for more information.")
- return cls(" ".join(message))
|