<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def to_dict(self, *, include_keys=None, exclude_keys=None, use_default_excludes=True):
 """Converts the class to a dictionary. :include_keys: if not None, only the attrs given will be included. :exclude_keys: if not None, all attrs except those listed will be included, with respect to use_default_excludes. :use_default_excludes: if True, then the class-level exclude_keys_serialize will be combined with exclude_keys if given, or used in place of exlcude_keys if not given. """

    data = self.__dict__

    if include_keys:
      return pick(data, include_keys, transform=self._other_to_dict)
    else:
      skeys = self.exclude_keys_serialize if use_default_excludes else None
      ekeys = exclude_keys

      return exclude(
        data,
        lambda k: (skeys is not None and k in skeys) or (ekeys is not None and k in ekeys),
        transform=self._other_to_dict)