Files
kittycad.py/kittycad/api/file/post_file_conversion_with_base64_helper.py

59 lines
1.8 KiB
Python
Raw Normal View History

from typing import Any, Dict, Optional, Union
import base64
import httpx
from ...client import Client
from ...models.file_conversion import FileConversion
from ...models.valid_source_file_format import ValidSourceFileFormat
from ...models.valid_output_file_format import ValidOutputFileFormat
from ...types import Response
from ...api.file.post_file_conversion import sync as fc_sync, asyncio as fc_asyncio
def sync(
source_format: ValidSourceFileFormat,
output_format: ValidOutputFileFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[Any, FileConversion]]:
"""Convert a CAD file from one format to another. If the file being converted is larger than a certain size it will be performed asynchronously. This function automatically base64 encodes the request body and base64 decodes the request output."""
encoded = base64.b64encode(body)
fc = fc_sync(
source_format=source_format,
output_format=output_format,
body=encoded,
client=client,
)
if fc != None and fc.output != "":
fc.output = base64.b64decode(fc.output)
return fc
async def asyncio(
source_format: ValidSourceFileFormat,
output_format: ValidOutputFileFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[Any, FileConversion]]:
"""Convert a CAD file from one format to another. If the file being converted is larger than a certain size it will be performed asynchronously. This function automatically base64 encodes the request body and base64 decodes the request output."""
encoded = base64.b64encode(body)
fc = await fc_asyncio(
source_format=source_format,
output_format=output_format,
body=encoded,
client=client,
)
if fc != None and fc.output != "":
fc.output = base64.b64decode(fc.output)
return fc