docs: def add_quantity_modifier(self, quantity, modifier, overwrite=False):
          """
          Add a quantify modifier.
          Consider useing the high-level function `add_derived_quantity` instead!
  
          Parameters
          ----------
          quantity : str
              name of the derived quantity to add
  
          modifier : None or str or tuple
              If the quantity modifier is a tuple of length >=2 and the first element is a callable,
              it should be in the formate of `(callable, native quantity 1,  native quantity 2, ...)`.
              And the modifier would work as callable(native quantity 1,  native quantity 2, ...)
              If the quantity modifier is None, the quantity will be used as the native quantity name
              Otherwise, the modifier would be use directly as a native quantity name
  
          overwrite : bool, optional
              If False and quantity are already specified in _quantity_modifiers, raise an ValueError
          """
          if quantity in self._quantity_modifiers and not overwrite:
              raise ValueError('quantity `{}` already exists'.format(quantity))
          self._quantity_modifiers[quantity] = modifier
          self._check_quantities_exist([quantity], raise_exception=False)