docs: def pretty_format(obj, indent=None):
          """
          Pretty formats the given object as a string which is returned.
          If indent is None, a single line will be returned.
          """
          if indent is None:
              if isinstance(obj, TLObject):
                  obj = obj.to_dict()
  
              if isinstance(obj, dict):
                  return '{}({})'.format(obj.get('_', 'dict'), ', '.join(
                      '{}={}'.format(k, TLObject.pretty_format(v))
                      for k, v in obj.items() if k != '_'
                  ))
              elif isinstance(obj, str) or isinstance(obj, bytes):
                  return repr(obj)
              elif hasattr(obj, '__iter__'):
                  return '[{}]'.format(
                      ', '.join(TLObject.pretty_format(x) for x in obj)
                  )
              else:
                  return repr(obj)
          else:
              result = []
              if isinstance(obj, TLObject):
                  obj = obj.to_dict()
  
              if isinstance(obj, dict):
                  result.append(obj.get('_', 'dict'))
                  result.append('(')
                  if obj:
                      result.append('\n')
                      indent += 1
                      for k, v in obj.items():
                          if k == '_':
                              continue
                          result.append('\t' * indent)
                          result.append(k)
                          result.append('=')
                          result.append(TLObject.pretty_format(v, indent))
                          result.append(',\n')
                      result.pop()  # last ',\n'
                      indent -= 1
                      result.append('\n')
                      result.append('\t' * indent)
                  result.append(')')
  
              elif isinstance(obj, str) or isinstance(obj, bytes):
                  result.append(repr(obj))
  
              elif hasattr(obj, '__iter__'):
                  result.append('[\n')
                  indent += 1
                  for x in obj:
                      result.append('\t' * indent)
                      result.append(TLObject.pretty_format(x, indent))
                      result.append(',\n')
                  indent -= 1
                  result.append('\t' * indent)
                  result.append(']')
  
              else:
                  result.append(repr(obj))
  
              return ''.join(result)