from enum import Enum


class FileExportFormat(str, Enum):
    """The valid types of output file formats."""  # noqa: E501

    """# Autodesk Filmbox (FBX) format. <https://en.wikipedia.org/wiki/FBX>"""  # noqa: E501

    FBX = "fbx"

    """# Binary glTF 2.0.

This is a single binary with .glb extension.

This is better if you want a compressed format as opposed to the human readable glTF that lacks compression."""  # noqa: E501

    GLB = "glb"

    """# glTF 2.0. Embedded glTF 2.0 (pretty printed).

Single JSON file with .gltf extension binary data encoded as base64 data URIs.

The JSON contents are pretty printed.

It is human readable, single file, and you can view the diff easily in a git commit."""  # noqa: E501

    GLTF = "gltf"

    """# The OBJ file format. <https://en.wikipedia.org/wiki/Wavefront_.obj_file> It may or may not have an an attached material (mtl // mtllib) within the file, but we interact with it as if it does not."""  # noqa: E501

    OBJ = "obj"

    """# The PLY file format. <https://en.wikipedia.org/wiki/PLY_(file_format)>"""  # noqa: E501

    PLY = "ply"

    """# The STEP file format. <https://en.wikipedia.org/wiki/ISO_10303-21>"""  # noqa: E501

    STEP = "step"

    """# The STL file format. <https://en.wikipedia.org/wiki/STL_(file_format)>"""  # noqa: E501

    STL = "stl"

    def __str__(self) -> str:
        return str(self.value)
