code: def autoprops(include=None,  # type: Union[str, Tuple[str]]
                exclude=None,  # type: Union[str, Tuple[str]]
                cls=DECORATED):
      
      return autoprops_decorate(cls, include=include, exclude=exclude)
docs: A decorator to automatically generate all properties getters and setters from the class constructor.
      * if a @contract annotation exist on the __init__ method, mentioning a contract for a given parameter, the
      parameter contract will be added on the generated setter method
      * The user may override the generated getter and/or setter by creating them explicitly in the class and annotating
      them with @getter_override or @setter_override. Note that the contract will still be dynamically added on the
      setter, even if the setter already has one (in such case a `UserWarning` will be issued)
  
      :param include: a tuple of explicit attribute names to include (None means all)
      :param exclude: a tuple of explicit attribute names to exclude. In such case, include should be None.
      :return: