Source code for evalml.exceptions.exceptions

"""Exceptions used in EvalML."""
from enum import Enum


[docs]class MethodPropertyNotFoundError(Exception): """Exception to raise when a class is does not have an expected method or property.""" pass
[docs]class PipelineNotFoundError(Exception): """An exception raised when a particular pipeline is not found in automl search results.""" pass
[docs]class ObjectiveNotFoundError(Exception): """Exception to raise when specified objective does not exist.""" pass
[docs]class MissingComponentError(Exception): """An exception raised when a component is not found in all_components().""" pass
[docs]class ComponentNotYetFittedError(Exception): """An exception to be raised when predict/predict_proba/transform is called on a component without fitting first.""" pass
[docs]class PipelineNotYetFittedError(Exception): """An exception to be raised when predict/predict_proba/transform is called on a pipeline without fitting first.""" pass
[docs]class AutoMLSearchException(Exception): """Exception raised when all pipelines in an automl batch return a score of NaN for the primary objective.""" pass
[docs]class PipelineScoreError(Exception): """An exception raised when a pipeline errors while scoring any objective in a list of objectives. Args: exceptions (dict): A dictionary mapping an objective name (str) to a tuple of the form (exception, traceback). All of the objectives that errored will be stored here. scored_successfully (dict): A dictionary mapping an objective name (str) to a score value. All of the objectives that did not error will be stored here. """ def __init__(self, exceptions, scored_successfully): self.exceptions = exceptions self.scored_successfully = scored_successfully # Format the traceback message exception_list = [] for objective, (exception, tb) in exceptions.items(): exception_list.append( f"{objective} encountered {str(exception.__class__.__name__)} with message ({str(exception)}):\n", ) exception_list.extend(tb) message = "\n".join(exception_list) self.message = message super().__init__(message)
[docs]class DataCheckInitError(Exception): """Exception raised when a data check can't initialize with the parameters given."""
[docs]class NullsInColumnWarning(UserWarning): """Warning thrown when there are null values in the column of interest."""
[docs]class ObjectiveCreationError(Exception): """Exception when get_objective tries to instantiate an objective and required args are not provided."""
[docs]class NoPositiveLabelException(Exception): """Exception when a particular classification label for the 'positive' class cannot be found in the column index or unique values."""
[docs]class ParameterNotUsedWarning(UserWarning): """Warning thrown when a pipeline parameter isn't used in a defined pipeline's component graph during initialization.""" def __init__(self, components): self.components = components msg = f"Parameters for components {components} will not be used to instantiate the pipeline since they don't appear in the pipeline" super().__init__(msg)
[docs]class ValidationErrorCode(Enum): """Enum identifying the type of error encountered in holdout validation.""" INVALID_HOLDOUT_LENGTH = "invalid_holdout_length" """invalid_holdout_length""" INVALID_HOLDOUT_GAP_SEPARATION = "invalid_holdout_gap_separation" """invalid_holdout_gap_separation"""
[docs]class PartialDependenceErrorCode(Enum): """Enum identifying the type of error encountered in partial dependence.""" TOO_MANY_FEATURES = "too_many_features" """too_many_features""" FEATURES_ARGUMENT_INCORRECT_TYPES = "features_argument_incorrect_types" """features_argument_incorrect_types""" UNFITTED_PIPELINE = "unfitted_pipeline" """unfitted_pipeline""" PIPELINE_IS_BASELINE = "pipeline_is_baseline" """pipeline_is_baseline""" TWO_WAY_REQUESTED_FOR_DATES = "two_way_requested_for_dates" """two_way_requested_for_dates""" FEATURE_IS_ALL_NANS = "feature_is_all_nans" """feature_is_all_nans""" FEATURE_IS_MOSTLY_ONE_VALUE = "feature_is_mostly_one_value" """feature_is_mostly_one_value""" COMPUTED_PERCENTILES_TOO_CLOSE = "computed_percentiles_too_close" """computed_percentiles_too_close""" INVALID_FEATURE_TYPE = "invalid_feature_type" """invalid_feature_type""" ICE_PLOT_REQUESTED_FOR_TWO_WAY_PLOT = ( "ice_plot_requested_for_two_way_partial_dependence_plot" ) """ice_plot_requested_for_two_way_partial_dependence_plot""" INVALID_CLASS_LABEL = "invalid_class_label_requested_for_plot" """invalid_class_label_requested_for_plot""" ALL_OTHER_ERRORS = "all_other_errors" """all_other_errors"""
[docs]class PartialDependenceError(ValueError): """Exception raised for all errors that partial dependence can raise. Args: message (str): descriptive error message code (PartialDependenceErrorCode): code for speicific error """ def __init__(self, message, code): self.code = code super().__init__(message)
[docs]class PipelineErrorCodeEnum(Enum): """Enum identifying the type of error encountered while applying a pipeline.""" PREDICT_INPUT_SCHEMA_UNEQUAL = "predict_input_schema_unequal" """predict_input_schema_unequal"""
[docs]class PipelineError(ValueError): """Exception raised for errors that can be raised when applying a pipeline. Args: message (str): descriptive error message code (PipelineErrorCodeEnum): code for specific error details (dict): additional details for error """ def __init__(self, message, code, details=None): self.code = code self.details = details super().__init__(message)