docs: def save(self, out, kind=None, **kw):
          """\
          Serializes the QR Code in one of the supported formats.
          The serialization format depends on the filename extension.
  
          **Common keywords**
  
  
          ==========    ==============================================================
          Name          Description
          ==========    ==============================================================
          scale         Integer or float indicating the size of a single module.
                        Default: 1. The interpretation of the scaling factor depends
                        on the serializer. For pixel-based output (like PNG) the
                        scaling factor is interepreted as pixel-size (1 = 1 pixel).
                        EPS interprets ``1`` as 1 point (1/72 inch) per module.
                        Some serializers (like SVG) accept float values. If the
                        serializer does not accept float values, the value will be
                        converted to an integer value (note: int(1.6) == 1).
          border        Integer indicating the size of the quiet zone.
                        If set to ``None`` (default), the recommended border size
                        will be used (``4`` for QR Codes, ``2`` for a Micro QR Codes).
          color         A string or tuple representing a color value for the dark
                        modules. The default value is "black".  The color can be
                        provided as ``(R, G, B)`` tuple, as web color name
                        (like "red") or in hexadecimal format (``#RGB`` or
                        ``#RRGGBB``). Some serializers (SVG and PNG) accept an alpha
                        transparency value like ``#RRGGBBAA``.
          background    A string or tuple representing a color for the light modules
                        or background. See "color" for valid values.
                        The default value depends on the serializer. SVG uses no
                        background color (``None``) by default, other serializers
                        use "white" as default background color.
          ==========    ==============================================================
  
  
          **Scalable Vector Graphics (SVG)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.BytesIO
          kind             "svg" or "svgz" (to create a gzip compressed SVG)
          scale            integer or float
          color            Default: "#000" (black)
                           ``None`` is a valid value. If set to ``None``, the resulting
                           path won't have a "stroke" attribute. The "stroke" attribute
                           may be defined via CSS (external).
                           If an alpha channel is defined, the output depends of the
                           used SVG version. For SVG versions >= 2.0, the "stroke"
                           attribute will have a value like "rgba(R, G, B, A)", otherwise
                           the path gets another attribute "stroke-opacity" to emulate
                           the alpha channel.
                           To minimize the document size, the SVG serializer uses
                           automatically the shortest color representation: If
                           a value like "#000000" is provided, the resulting
                           document will have a color value of "#000". If the color
                           is "#FF0000", the resulting color is not "#F00", but
                           the web color name "red".
          background       Default value ``None``. If this paramater is set to another
                           value, the resulting image will have another path which
                           is used to define the background color.
                           If an alpha channel is used, the resulting path may
                           have a "fill-opacity" attribute (for SVG version < 2.0)
                           or the "fill" attribute has a "rgba(R, G, B, A)" value.
                           See keyword "color" for further details.
          xmldecl          Boolean value (default: ``True``) indicating whether the
                           document should have an XML declaration header.
                           Set to ``False`` to omit the header.
          svgns            Boolean value (default: ``True``) indicating whether the
                           document should have an explicit SVG namespace declaration.
                           Set to ``False`` to omit the namespace declaration.
                           The latter might be useful if the document should be
                           embedded into a HTML 5 document where the SVG namespace
                           is implicitly defined.
          title            String (default: ``None``) Optional title of the generated
                           SVG document.
          desc             String (default: ``None``) Optional description of the
                           generated SVG document.
          svgid            A string indicating the ID of the SVG document
                           (if set to ``None`` (default), the SVG element won't have
                           an ID).
          svgclass         Default: "segno". The CSS class of the SVG document
                           (if set to ``None``, the SVG element won't have a class).
          lineclass        Default: "qrline". The CSS class of the path element
                           (which draws the dark modules (if set to ``None``, the path
                           won't have a class).
          omitsize         Indicates if width and height attributes should be
                           omitted (default: ``False``). If these attributes are
                           omitted, a ``viewBox`` attribute will be added to the
                           document.
          unit             Default: ``None``
                           Inidctaes the unit for width / height and other coordinates.
                           By default, the unit is unspecified and all values are
                           in the user space.
                           Valid values: em, ex, px, pt, pc, cm, mm, in, and percentages
                           (any string is accepted, this parameter is not validated
                           by the serializer)
          encoding         Encoding of the XML document. "utf-8" by default.
          svgversion       SVG version (default: ``None``). If specified (a float),
                           the resulting document has an explicit "version" attribute.
                           If set to ``None``, the document won't have a "version"
                           attribute. This parameter is not validated.
          compresslevel    Default: 9. This parameter is only valid, if a compressed
                           SVG document should be created (file extension "svgz").
                           1 is fastest and produces the least compression, 9 is slowest
                           and produces the most. 0 is no compression.
          =============    ==============================================================
  
  
          **Portable Network Graphics (PNG)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.BytesIO
          kind             "png"
          scale            integer
          color            Default: "#000" (black)
                           ``None`` is a valid value iff background is not ``None``.
          background       Default value ``#fff`` (white)
                           See keyword "color" for further details.
          compresslevel    Default: 9. Integer indicating the compression level
                           for the ``IDAT`` (data) chunk.
                           1 is fastest and produces the least compression, 9 is slowest
                           and produces the most. 0 is no compression.
          dpi              Default: None. Specifies the DPI value for the image.
                           By default, the DPI value is unspecified. Please note
                           that the DPI value is converted into meters (maybe with
                           rounding errors) since PNG does not support the unit
                           "dots per inch".
          addad            Boolean value (default: True) to (dis-)allow a "Software"
                           comment indicating that the file was created by Segno.
          =============    ==============================================================
  
  
          **Encapsulated PostScript (EPS)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.StringIO
          kind             "eps"
          scale            integer or float
          color            Default: "#000" (black)
          background       Default value: ``None`` (no background)
          =============    ==============================================================
  
  
          **Portable Document Format (PDF)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.BytesIO
          kind             "pdf"
          scale            integer or float
          compresslevel    Default: 9. Integer indicating the compression level.
                           1 is fastest and produces the least compression, 9 is slowest
                           and produces the most. 0 is no compression.
          =============    ==============================================================
  
  
          **Text (TXT)**
  
          Does not support the "scale" keyword!
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.StringIO
          kind             "txt"
          color            Default: "1"
          background       Default: "0"
          =============    ==============================================================
  
  
          **ANSI escape code**
  
          Supports the "border" keyword, only!
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          kind             "ans"
          =============    ==============================================================
  
  
          **Portable Bitmap (PBM)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.BytesIO
          kind             "pbm"
          scale            integer
          plain            Default: False. Boolean to switch between the P4 and P1 format.
                           If set to ``True``, the (outdated) P1 serialization format is
                           used.
          =============    ==============================================================
  
  
          **Portable Arbitrary Map (PAM)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.BytesIO
          kind             "pam"
          scale            integer
          color            Default: "#000" (black).
          background       Default value ``#fff`` (white). Use ``None`` for a transparent
                           background.
          =============    ==============================================================
  
  
          **LaTeX / PGF/TikZ**
  
          To use the output of this serializer, the ``PGF/TikZ`` (and optionally
          ``hyperref``) package is required in the LaTeX environment. The
          serializer itself does not depend on any external packages.
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.StringIO
          kind             "tex"
          scale            integer or float
          color            LaTeX color name (default: "black"). The color is written
                           "at it is", so ensure that the color is a standard color or it
                           has been defined in the enclosing LaTeX document.
          url              Default: ``None``. Optional URL where the QR Code should
                           point to. Requires the ``hyperref`` package in your LaTeX
                           environment.
          =============    ==============================================================
  
  
          **X BitMap (XBM)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.StringIO
          kind             "xbm"
          scale            integer
          name             Name of the variable (default: "img")
          =============    ==============================================================
  
  
          **X PixMap (XPM)**
  
          =============    ==============================================================
          Name             Description
          =============    ==============================================================
          out              Filename or io.StringIO
          kind             "xpm"
          scale            integer
          color            Default: "#000" (black).
          background       Default value ``#fff`` (white)
                           ``None`` indicates a transparent background.
          name             Name of the variable (default: "img")
          =============    ==============================================================
  
  
          :param out: A filename or a writable file-like object with a
                  ``name`` attribute. Use the `kind` parameter if `out` is
                  a :py:class:`io.ByteIO` or :py:class:`io.StringIO` stream which
                  don't have a ``name`` attribute.
          :param kind: If the desired output format cannot be determined from
                  the ``out`` parameter, this parameter can be used to indicate the
                  serialization format (i.e. "svg" to enforce SVG output)
          :param kw: Any of the supported keywords by the specific serialization
                  method.
          """
          writers.save(self.matrix, self._version, out, kind, **kw)