class_docstr: This descriptor class add type and value checking informations to the _Col
  instance for future usage in the DFtoVW class. Indeed, the type and value checking
  can only be done once the dataframe is known (i.e in DFtoVW class). This descriptor
  class is used in the following managed class: SimpleLabel, MulticlassLabel, Feature, etc.
class_docstr_tok: ["This","descriptor","class","add","type","and","value","checking","informations","to","the","_Col","instance","for","future","usage","in","the","DFtoVW","class",".","Indeed",",","the","type","and","value","checking","can","only","be","done","once","the","dataframe","is","known","(","i.e","in","DFtoVW","class",")",".","This","descriptor","class","is","used","in","the","following","managed","class",":","SimpleLabel",",","MulticlassLabel",",","Feature",",","etc","."]
docstr: Initialize an _AttributeDescriptor instance
  
  Args:
      attribute_name: The name of the attribute.
      expected_type: The expected type of the attribute.
      min_value: The minimum value of the attribute.
      max_value: The maximum value of the attribute.
  Raises:
      TypeError: If one of the arguments passed is not of valid type.
docstr_tok: ["Initialize","an","_AttributeDescriptor","instance","Args",":","attribute_name",":","The","name","of","the","attribute",".","expected_type",":","The","expected","type","of","the","attribute",".","min_value",":","The","minimum","value","of","the","attribute",".","max_value",":","The","maximum","value","of","the","attribute",".","Raises",":","TypeError",":","If","one","of","the","arguments","passed","is","not","of","valid","type","."]
code: def __init__(
      self,
      attribute_name: str,
      expected_type: Tuple[Type, ...],
      min_value: Optional[Union[str, int, float]] = None,
      max_value: Optional[Union[str, int, float]] = None,
  ):
      """Initialize an _AttributeDescriptor instance
  
      Args:
          attribute_name: The name of the attribute.
          expected_type: The expected type of the attribute.
          min_value: The minimum value of the attribute.
          max_value: The maximum value of the attribute.
      Raises:
          TypeError: If one of the arguments passed is not of valid type.
      """
      if not isinstance(attribute_name, str):
          raise TypeError("Argument 'attribute_name' must be a string")
      self.attribute_name = attribute_name
      if not isinstance(expected_type, tuple):
          raise TypeError("Argument 'expected_type' must be a tuple")
      self.expected_type = expected_type
      self.min_value = min_value
      self.max_value = max_value
  
imports: import warnings
  import numpy
  import pandas
  from typing import Any, Hashable, List, Optional, Tuple, Type, Union
label_desc: Use image node_id 1 to create a new _AttributeDescriptor object from inherited base classes: object with example: obj = _AttributeDescriptor(attribute_name, expected_type, min_value, max_value)