...

def decorate_all_methods_and_properties(method_decorator, property_decorator):
  """
  ...
  """
  def decorate_class(cls):
    for name, m in inspect.getmembers(cls, inspect.ismethod):
      if name != "__init__":
        setattr(cls, name, method_decorator(m))
    for name, p in inspect.getmembers(cls, lambda x: isinstance(x, property)):
      if name != "__init__":
        setattr(cls, name, property_decorator(name, p))
    return cls
  return decorate_class