class_docstr: Raise this error instead of NotImplementedError for abstract methods
  while keeping compatibility with Python 2 and Python 3.
code: def __init__(self, class_instance, methodtype="method"):
      types = {"method", "classmethod", "staticmethod", "property"}
      if methodtype not in types:
          msg = "methodtype must be one of {}, got {} instead.".format(
              methodtype, types
          )
          raise ValueError(msg)
      self.methodtype = methodtype
      self.class_instance = class_instance
  
imports: from pandas._libs.tslibs import OutOfBoundsDatetime
label_desc: Use image node_id 1 to create a new AbstractMethodError object from inherited base classes: NotImplementedError with example: obj = AbstractMethodError(class_instance, methodtype)