docs: def dumps(obj, imports=None, binary=True, sequence_as_stream=False, skipkeys=False, ensure_ascii=True, check_circular=True,
            allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, use_decimal=True,
            namedtuple_as_object=True, tuple_as_array=True, bigint_as_string=False, sort_keys=False, item_sort_key=None,
            for_json=None, ignore_nan=False, int_as_string_bitcount=None, iterable_as_array=False, **kw):
      """Serialize ``obj`` as Python ``string`` or ``bytes`` object, using the conversion table used by ``dump`` (above).
  
      Args:
          obj (Any): A python object to serialize according to the above table. Any Python object which is neither an
              instance of nor inherits from one of the types in the above table will raise TypeError.
          imports (Optional[Sequence[SymbolTable]]): A sequence of shared symbol tables to be used by by the writer.
          binary (Optional[True|False]): When True, outputs binary Ion. When false, outputs text Ion.
          sequence_as_stream (Optional[True|False]): When True, if ``obj`` is a sequence, it will be treated as a stream
              of top-level Ion values (i.e. the resulting Ion data will begin with ``obj``'s first element).
              Default: False.
          skipkeys: NOT IMPLEMENTED
          ensure_ascii: NOT IMPLEMENTED
          check_circular: NOT IMPLEMENTED
          allow_nan: NOT IMPLEMENTED
          cls: NOT IMPLEMENTED
          indent (Str): If binary is False and indent is a string, then members of containers will be pretty-printed with
              a newline followed by that string repeated for each level of nesting. None (the default) selects the most
              compact representation without any newlines. Example: to indent with four spaces per level of nesting,
              use ``'    '``.
          separators: NOT IMPLEMENTED
          encoding: NOT IMPLEMENTED
          default: NOT IMPLEMENTED
          use_decimal: NOT IMPLEMENTED
          namedtuple_as_object: NOT IMPLEMENTED
          tuple_as_array: NOT IMPLEMENTED
          bigint_as_string: NOT IMPLEMENTED
          sort_keys: NOT IMPLEMENTED
          item_sort_key: NOT IMPLEMENTED
          for_json: NOT IMPLEMENTED
          ignore_nan: NOT IMPLEMENTED
          int_as_string_bitcount: NOT IMPLEMENTED
          iterable_as_array: NOT IMPLEMENTED
          **kw: NOT IMPLEMENTED
  
      Returns:
          Union[str|bytes]: The string or binary representation of the data.  if ``binary=True``, this will be a
              ``bytes`` object, otherwise this will be a ``str`` object (or ``unicode`` in the case of Python 2.x)
      """
      ion_buffer = six.BytesIO()
  
      dump(obj, ion_buffer, sequence_as_stream=sequence_as_stream, binary=binary, skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular,
           allow_nan=allow_nan, cls=cls, indent=indent, separators=separators, encoding=encoding, default=default,
           use_decimal=use_decimal, namedtuple_as_object=namedtuple_as_object, tuple_as_array=tuple_as_array,
           bigint_as_string=bigint_as_string, sort_keys=sort_keys, item_sort_key=item_sort_key, for_json=for_json,
           ignore_nan=ignore_nan, int_as_string_bitcount=int_as_string_bitcount, iterable_as_array=iterable_as_array)
  
      ret_val = ion_buffer.getvalue()
      ion_buffer.close()
      if not binary:
          ret_val = ret_val.decode('utf-8')
      return ret_val