code: def export_yaml(obj, file_name):
      
      def callback(data):
          # Ref: https://yaml.readthedocs.io/en/latest/example.html#output-of-dump-as-a-string
          stream = StringIO()
          yaml = YAML()
          yaml.dump(data, stream)
          return stream.getvalue()
  
      # Check if it is possible to import 'ruamel.yaml'
      try:
          from ruamel.yaml import YAML
      except ImportError:
          raise exch.GeomdlException("Please install 'ruamel.yaml' package to use YAML format: pip install ruamel.yaml")
  
      # Export data
      exported_data = exch.export_dict_str(obj=obj, callback=callback)
  
      # Write to file
      return exch.write_file(file_name, exported_data)
docs: Exports curves and surfaces in YAML format.
  
      .. note::
  
          Requires `ruamel.yaml <https://pypi.org/project/ruamel.yaml/>`_ package.
  
      YAML format is also used by the `geomdl command-line application <https://github.com/orbingol/geomdl-cli>`_
      as a way to input shape data from the command line.
  
      :param obj: input geometry
      :type obj: abstract.SplineGeometry, multi.AbstractContainer
      :param file_name: name of the output file
      :type file_name: str
      :raises GeomdlException: an error occurred writing the file