class_docstr: An Validator for input offset.
docstr: Validate the start and end input offset provided to the decorator.
  
  Args:
      udf (Callable[..., T]): The feature_processor wrapped user function.
      fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
  Raises (ValueError): raises ValueError when input_start_offset is later than
      input_end_offset.
docstr_tok: ["Validate","the","start","and","end","input","offset","provided","to","the","decorator",".","Args",":","udf","(","Callable","[","...",",","T","]",")",":","The","feature_processor","wrapped","user","function",".","fp_config","(","FeatureProcessorConfig",")",":","The","configuration","for","the","feature_processor",".","Raises","(","ValueError",")",":","raises","ValueError","when","input_start_offset","is","later","than","input_end_offset","."]
code: def validate(
      self, udf: Callable[..., Any], fp_config: FeatureProcessorConfig
  ) -> None:
      """Validate the start and end input offset provided to the decorator.
  
      Args:
          udf (Callable[..., T]): The feature_processor wrapped user function.
          fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
      Raises (ValueError): raises ValueError when input_start_offset is later than
          input_end_offset.
      """
  
      for config_input in fp_config.inputs:
          if isinstance(input, FeatureGroupDataSource):
              input_start_offset = config_input.input_start_offset
              input_end_offset = config_input.input_end_offset
              start_td = InputOffsetParser.parse_offset_to_timedelta(
                  input_start_offset
              )
              end_td = InputOffsetParser.parse_offset_to_timedelta(
                  input_end_offset
              )
              if start_td and end_td and start_td > end_td:
                  raise ValueError(
                      "input_start_offset should be always before input_end_offset."
                  )
  
imports: from __future__ import absolute_import
  import inspect
  import re
  from abc import ABC, abstractmethod
  from typing import Any, Callable, List
  import attr
  from sagemaker.feature_store.feature_processor._data_source import FeatureGroupDataSource, BaseDataSource
  from sagemaker.feature_store.feature_processor._feature_processor_config import FeatureProcessorConfig
  from sagemaker.feature_store.feature_processor._input_offset_parser import InputOffsetParser
label_desc: Use image node_id 1 for calling the InputOffsetValidator obj's underlying member method code with example usage: obj.validate(udf, fp_config) without return types