@ -87,6 +87,7 @@ def generatePath(
|
|||||||
endoint_refs = getEndpointRefs(endpoint, data)
|
endoint_refs = getEndpointRefs(endpoint, data)
|
||||||
parameter_refs = getParameterRefs(endpoint)
|
parameter_refs = getParameterRefs(endpoint)
|
||||||
request_body_refs = getRequestBodyRefs(endpoint)
|
request_body_refs = getRequestBodyRefs(endpoint)
|
||||||
|
request_body_type = getRequestBodyType(endpoint)
|
||||||
|
|
||||||
# Add our imports.
|
# Add our imports.
|
||||||
f.write("from typing import Any, Dict, Optional, Union\n")
|
f.write("from typing import Any, Dict, Optional, Union\n")
|
||||||
@ -141,6 +142,11 @@ def generatePath(
|
|||||||
": " +
|
": " +
|
||||||
parameter_type +
|
parameter_type +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\tbody: " +
|
||||||
|
request_body_type +
|
||||||
|
",\n")
|
||||||
f.write("\t*,\n")
|
f.write("\t*,\n")
|
||||||
f.write("\tclient: Client,\n")
|
f.write("\tclient: Client,\n")
|
||||||
f.write(") -> Dict[str, Any]:\n")
|
f.write(") -> Dict[str, Any]:\n")
|
||||||
@ -268,6 +274,11 @@ def generatePath(
|
|||||||
": " +
|
": " +
|
||||||
parameter_type +
|
parameter_type +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\tbody: " +
|
||||||
|
request_body_type +
|
||||||
|
",\n")
|
||||||
f.write("\t*,\n")
|
f.write("\t*,\n")
|
||||||
f.write("\tclient: Client,\n")
|
f.write("\tclient: Client,\n")
|
||||||
f.write(") -> Response[Union[Any, " +
|
f.write(") -> Response[Union[Any, " +
|
||||||
@ -294,6 +305,9 @@ def generatePath(
|
|||||||
"=" +
|
"=" +
|
||||||
camel_to_snake(parameter_name) +
|
camel_to_snake(parameter_name) +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\t\tbody=body,\n")
|
||||||
f.write("\t\tclient=client,\n")
|
f.write("\t\tclient=client,\n")
|
||||||
f.write("\t)\n")
|
f.write("\t)\n")
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
@ -329,6 +343,11 @@ def generatePath(
|
|||||||
": " +
|
": " +
|
||||||
parameter_type +
|
parameter_type +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\tbody: " +
|
||||||
|
request_body_type +
|
||||||
|
",\n")
|
||||||
f.write("\t*,\n")
|
f.write("\t*,\n")
|
||||||
f.write("\tclient: Client,\n")
|
f.write("\tclient: Client,\n")
|
||||||
f.write(") -> Optional[Union[Any, " +
|
f.write(") -> Optional[Union[Any, " +
|
||||||
@ -358,6 +377,9 @@ def generatePath(
|
|||||||
"=" +
|
"=" +
|
||||||
camel_to_snake(parameter_name) +
|
camel_to_snake(parameter_name) +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\t\tbody=body,\n")
|
||||||
f.write("\t\tclient=client,\n")
|
f.write("\t\tclient=client,\n")
|
||||||
f.write("\t).parsed\n")
|
f.write("\t).parsed\n")
|
||||||
|
|
||||||
@ -386,6 +408,11 @@ def generatePath(
|
|||||||
": " +
|
": " +
|
||||||
parameter_type +
|
parameter_type +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\tbody: " +
|
||||||
|
request_body_type +
|
||||||
|
",\n")
|
||||||
f.write("\t*,\n")
|
f.write("\t*,\n")
|
||||||
f.write("\tclient: Client,\n")
|
f.write("\tclient: Client,\n")
|
||||||
f.write(") -> Response[Union[Any, " +
|
f.write(") -> Response[Union[Any, " +
|
||||||
@ -412,6 +439,9 @@ def generatePath(
|
|||||||
"=" +
|
"=" +
|
||||||
camel_to_snake(parameter_name) +
|
camel_to_snake(parameter_name) +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\t\tbody=body,\n")
|
||||||
f.write("\t\tclient=client,\n")
|
f.write("\t\tclient=client,\n")
|
||||||
f.write("\t)\n")
|
f.write("\t)\n")
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
@ -445,6 +475,11 @@ def generatePath(
|
|||||||
": " +
|
": " +
|
||||||
parameter_type +
|
parameter_type +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\tbody: " +
|
||||||
|
request_body_type +
|
||||||
|
",\n")
|
||||||
f.write("\t*,\n")
|
f.write("\t*,\n")
|
||||||
f.write("\tclient: Client,\n")
|
f.write("\tclient: Client,\n")
|
||||||
f.write(") -> Optional[Union[Any, " +
|
f.write(") -> Optional[Union[Any, " +
|
||||||
@ -475,6 +510,9 @@ def generatePath(
|
|||||||
"=" +
|
"=" +
|
||||||
camel_to_snake(parameter_name) +
|
camel_to_snake(parameter_name) +
|
||||||
",\n")
|
",\n")
|
||||||
|
if request_body_type:
|
||||||
|
f.write(
|
||||||
|
"\t\t\tbody=body,\n")
|
||||||
f.write("\t\t\tclient=client,\n")
|
f.write("\t\t\tclient=client,\n")
|
||||||
f.write("\t\t)\n")
|
f.write("\t\t)\n")
|
||||||
f.write("\t).parsed\n")
|
f.write("\t).parsed\n")
|
||||||
@ -949,6 +987,27 @@ def getRequestBodyRefs(endpoint: dict) -> [str]:
|
|||||||
|
|
||||||
return refs
|
return refs
|
||||||
|
|
||||||
|
def getRequestBodyType(endpoint: dict) -> str:
|
||||||
|
type_name = None
|
||||||
|
|
||||||
|
if 'requestBody' in endpoint:
|
||||||
|
requestBody = endpoint['requestBody']
|
||||||
|
if 'content' in requestBody:
|
||||||
|
content = requestBody['content']
|
||||||
|
for content_type in content:
|
||||||
|
if content_type == 'application/json':
|
||||||
|
json = content[content_type]['schema']
|
||||||
|
if '$ref' in json:
|
||||||
|
ref = json['$ref'].replace('#/components/schemas/', '')
|
||||||
|
return ref
|
||||||
|
elif content_type == 'text/plain':
|
||||||
|
return 'bytes'
|
||||||
|
else:
|
||||||
|
print(" unsupported content type: ", content_type)
|
||||||
|
raise Exception("unsupported content type")
|
||||||
|
|
||||||
|
return type_name
|
||||||
|
|
||||||
|
|
||||||
def camel_to_snake(name: str):
|
def camel_to_snake(name: str):
|
||||||
name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
|
name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
|
||||||
|
@ -6,7 +6,7 @@ import httpx
|
|||||||
from ...client import AuthenticatedClient
|
from ...client import AuthenticatedClient
|
||||||
from ...models.file_conversion import FileConversion
|
from ...models.file_conversion import FileConversion
|
||||||
from ...types import Response
|
from ...types import Response
|
||||||
from ...api.file.file_conversion_by_id import sync as fc_sync, asyncio as fc_asyncio
|
from ...api.file.file_conversion_status import sync as fc_sync, asyncio as fc_asyncio
|
||||||
|
|
||||||
|
|
||||||
def sync(
|
def sync(
|
@ -12,6 +12,7 @@ from ...types import Response
|
|||||||
def _get_kwargs(
|
def _get_kwargs(
|
||||||
source_format: ValidSourceFileFormat,
|
source_format: ValidSourceFileFormat,
|
||||||
output_format: ValidOutputFileFormat,
|
output_format: ValidOutputFileFormat,
|
||||||
|
body: bytes,
|
||||||
*,
|
*,
|
||||||
client: Client,
|
client: Client,
|
||||||
) -> Dict[str, Any]:
|
) -> Dict[str, Any]:
|
||||||
@ -65,12 +66,14 @@ def _build_response(*, response: httpx.Response) -> Response[Union[Any, FileConv
|
|||||||
def sync_detailed(
|
def sync_detailed(
|
||||||
source_format: ValidSourceFileFormat,
|
source_format: ValidSourceFileFormat,
|
||||||
output_format: ValidOutputFileFormat,
|
output_format: ValidOutputFileFormat,
|
||||||
|
body: bytes,
|
||||||
*,
|
*,
|
||||||
client: Client,
|
client: Client,
|
||||||
) -> Response[Union[Any, FileConversion, ErrorMessage]]:
|
) -> Response[Union[Any, FileConversion, ErrorMessage]]:
|
||||||
kwargs = _get_kwargs(
|
kwargs = _get_kwargs(
|
||||||
source_format=source_format,
|
source_format=source_format,
|
||||||
output_format=output_format,
|
output_format=output_format,
|
||||||
|
body=body,
|
||||||
client=client,
|
client=client,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -85,6 +88,7 @@ def sync_detailed(
|
|||||||
def sync(
|
def sync(
|
||||||
source_format: ValidSourceFileFormat,
|
source_format: ValidSourceFileFormat,
|
||||||
output_format: ValidOutputFileFormat,
|
output_format: ValidOutputFileFormat,
|
||||||
|
body: bytes,
|
||||||
*,
|
*,
|
||||||
client: Client,
|
client: Client,
|
||||||
) -> Optional[Union[Any, FileConversion, ErrorMessage]]:
|
) -> Optional[Union[Any, FileConversion, ErrorMessage]]:
|
||||||
@ -93,6 +97,7 @@ def sync(
|
|||||||
return sync_detailed(
|
return sync_detailed(
|
||||||
source_format=source_format,
|
source_format=source_format,
|
||||||
output_format=output_format,
|
output_format=output_format,
|
||||||
|
body=body,
|
||||||
client=client,
|
client=client,
|
||||||
).parsed
|
).parsed
|
||||||
|
|
||||||
@ -100,12 +105,14 @@ def sync(
|
|||||||
async def asyncio_detailed(
|
async def asyncio_detailed(
|
||||||
source_format: ValidSourceFileFormat,
|
source_format: ValidSourceFileFormat,
|
||||||
output_format: ValidOutputFileFormat,
|
output_format: ValidOutputFileFormat,
|
||||||
|
body: bytes,
|
||||||
*,
|
*,
|
||||||
client: Client,
|
client: Client,
|
||||||
) -> Response[Union[Any, FileConversion, ErrorMessage]]:
|
) -> Response[Union[Any, FileConversion, ErrorMessage]]:
|
||||||
kwargs = _get_kwargs(
|
kwargs = _get_kwargs(
|
||||||
source_format=source_format,
|
source_format=source_format,
|
||||||
output_format=output_format,
|
output_format=output_format,
|
||||||
|
body=body,
|
||||||
client=client,
|
client=client,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -118,6 +125,7 @@ async def asyncio_detailed(
|
|||||||
async def asyncio(
|
async def asyncio(
|
||||||
source_format: ValidSourceFileFormat,
|
source_format: ValidSourceFileFormat,
|
||||||
output_format: ValidOutputFileFormat,
|
output_format: ValidOutputFileFormat,
|
||||||
|
body: bytes,
|
||||||
*,
|
*,
|
||||||
client: Client,
|
client: Client,
|
||||||
) -> Optional[Union[Any, FileConversion, ErrorMessage]]:
|
) -> Optional[Union[Any, FileConversion, ErrorMessage]]:
|
||||||
@ -127,6 +135,7 @@ async def asyncio(
|
|||||||
await asyncio_detailed(
|
await asyncio_detailed(
|
||||||
source_format=source_format,
|
source_format=source_format,
|
||||||
output_format=output_format,
|
output_format=output_format,
|
||||||
|
body=body,
|
||||||
client=client,
|
client=client,
|
||||||
)
|
)
|
||||||
).parsed
|
).parsed
|
||||||
|
@ -7,7 +7,7 @@ from ...client import AuthenticatedClient
|
|||||||
from ...models.file_conversion import FileConversion
|
from ...models.file_conversion import FileConversion
|
||||||
from ...models.valid_file_type import ValidFileType
|
from ...models.valid_file_type import ValidFileType
|
||||||
from ...types import Response
|
from ...types import Response
|
||||||
from ...api.file.file_convert import sync as fc_sync, asyncio as fc_asyncio
|
from ...api.file.post_file_conversion import sync as fc_sync, asyncio as fc_asyncio
|
||||||
|
|
||||||
def sync(
|
def sync(
|
||||||
source_format: ValidFileType,
|
source_format: ValidFileType,
|
@ -3,16 +3,16 @@ import pytest
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from .client import AuthenticatedClientFromEnv
|
from .client import AuthenticatedClientFromEnv
|
||||||
from .models import FileConversion, ValidFileType, AuthSession, InstanceMetadata, Message
|
from .models import FileConversion, ValidOutputFileFormat, ValidSourceFileFormat, AuthSession, InstanceMetadata, Message
|
||||||
from .api.file import file_convert_with_base64_helper
|
from .api.file import post_file_conversion_with_base64_helper
|
||||||
from .api.meta import meta_debug_session, meta_debug_instance, ping
|
from .api.meta import auth_session, instance_metadata, ping
|
||||||
|
|
||||||
def test_get_session():
|
def test_get_session():
|
||||||
# Create our client.
|
# Create our client.
|
||||||
client = ClientFromEnv()
|
client = ClientFromEnv()
|
||||||
|
|
||||||
# Get the session.
|
# Get the session.
|
||||||
session: AuthSession = meta_debug_session.sync(client=client)
|
session: AuthSession = auth_session.sync(client=client)
|
||||||
|
|
||||||
assert session != None
|
assert session != None
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ async def test_get_session_async():
|
|||||||
client = ClientFromEnv()
|
client = ClientFromEnv()
|
||||||
|
|
||||||
# Get the session.
|
# Get the session.
|
||||||
session: AuthSession = await meta_debug_session.asyncio(client=client)
|
session: AuthSession = await auth_session.asyncio(client=client)
|
||||||
|
|
||||||
assert session != None
|
assert session != None
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ def test_get_instance():
|
|||||||
client = ClientFromEnv()
|
client = ClientFromEnv()
|
||||||
|
|
||||||
# Get the instance.
|
# Get the instance.
|
||||||
instance: InstanceMetadata = meta_debug_instance.sync(client=client)
|
instance: InstanceMetadata = instance_metadata.sync(client=client)
|
||||||
|
|
||||||
assert instance != None
|
assert instance != None
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ async def test_get_instance_async():
|
|||||||
client = ClientFromEnv()
|
client = ClientFromEnv()
|
||||||
|
|
||||||
# Get the instance.
|
# Get the instance.
|
||||||
instance: InstanceMetadata = await meta_debug_instance.asyncio(client=client)
|
instance: InstanceMetadata = await instance_metadata.asyncio(client=client)
|
||||||
|
|
||||||
assert instance != None
|
assert instance != None
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ def test_file_convert_stl():
|
|||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
# Get the fc.
|
# Get the fc.
|
||||||
fc: FileConversion = file_convert_with_base64_helper.sync(client=client, content=content, source_format=ValidFileType.STL, output_format=ValidFileType.OBJ)
|
fc: FileConversion = post_file_convertsion_with_base64_helper.sync(client=client, content=content, source_format=ValidSourceFileFormat.STL, output_format=ValidOutputFileFormat.OBJ)
|
||||||
|
|
||||||
assert fc != None
|
assert fc != None
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ async def test_file_convert_stl_async():
|
|||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
# Get the fc.
|
# Get the fc.
|
||||||
fc: FileConversion = await file_convert_with_base64_helper.asyncio(client=client, content=content, source_format=ValidFileType.STL, output_format=ValidFileType.OBJ)
|
fc: FileConversion = await post_file_convertsion_with_base64_helper.asyncio(client=client, content=content, source_format=ValidSourceFileFormat.STL, output_format=ValidOutputFileFormat.OBJ)
|
||||||
|
|
||||||
assert fc != None
|
assert fc != None
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="AuthSession")
|
T = TypeVar("T", bound="AuthSession")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class AuthSession:
|
class AuthSession:
|
||||||
""" """
|
""" """
|
||||||
@ -81,6 +80,7 @@ class AuthSession:
|
|||||||
|
|
||||||
user_id = d.pop("user_id", UNSET)
|
user_id = d.pop("user_id", UNSET)
|
||||||
|
|
||||||
|
|
||||||
auth_session = cls(
|
auth_session = cls(
|
||||||
created_at= created_at,
|
created_at= created_at,
|
||||||
email= email,
|
email= email,
|
||||||
|
@ -6,7 +6,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="ErrorMessage")
|
T = TypeVar("T", bound="ErrorMessage")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class ErrorMessage:
|
class ErrorMessage:
|
||||||
""" """
|
""" """
|
||||||
@ -42,6 +41,7 @@ class ErrorMessage:
|
|||||||
|
|
||||||
status = d.pop("status", UNSET)
|
status = d.pop("status", UNSET)
|
||||||
|
|
||||||
|
|
||||||
error_message = cls(
|
error_message = cls(
|
||||||
code= code,
|
code= code,
|
||||||
message= message,
|
message= message,
|
||||||
|
@ -11,7 +11,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="FileConversion")
|
T = TypeVar("T", bound="FileConversion")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class FileConversion:
|
class FileConversion:
|
||||||
""" """
|
""" """
|
||||||
@ -119,6 +118,7 @@ class FileConversion:
|
|||||||
else:
|
else:
|
||||||
status = FileConversionStatus(_status)
|
status = FileConversionStatus(_status)
|
||||||
|
|
||||||
|
|
||||||
file_conversion = cls(
|
file_conversion = cls(
|
||||||
completed_at= completed_at,
|
completed_at= completed_at,
|
||||||
created_at= created_at,
|
created_at= created_at,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class FileConversionStatus(str, Enum):
|
class FileConversionStatus(str, Enum):
|
||||||
QUEUED = 'Queued'
|
QUEUED = 'Queued'
|
||||||
UPLOADED = 'Uploaded'
|
UPLOADED = 'Uploaded'
|
||||||
|
@ -6,7 +6,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="GPUDevice")
|
T = TypeVar("T", bound="GPUDevice")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class GPUDevice:
|
class GPUDevice:
|
||||||
""" """
|
""" """
|
||||||
@ -54,6 +53,7 @@ class GPUDevice:
|
|||||||
|
|
||||||
peak_memory_bandwidth = d.pop("peak_memory_bandwidth", UNSET)
|
peak_memory_bandwidth = d.pop("peak_memory_bandwidth", UNSET)
|
||||||
|
|
||||||
|
|
||||||
gpu_device = cls(
|
gpu_device = cls(
|
||||||
id= id,
|
id= id,
|
||||||
memory_bus_width= memory_bus_width,
|
memory_bus_width= memory_bus_width,
|
||||||
|
@ -7,7 +7,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="Instance")
|
T = TypeVar("T", bound="Instance")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class Instance:
|
class Instance:
|
||||||
""" """
|
""" """
|
||||||
@ -98,6 +97,7 @@ class Instance:
|
|||||||
|
|
||||||
zone = d.pop("zone", UNSET)
|
zone = d.pop("zone", UNSET)
|
||||||
|
|
||||||
|
|
||||||
instance = cls(
|
instance = cls(
|
||||||
cpu_platform= cpu_platform,
|
cpu_platform= cpu_platform,
|
||||||
description= description,
|
description= description,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class PongEnum(str, Enum):
|
class PongEnum(str, Enum):
|
||||||
PONG = 'pong'
|
PONG = 'pong'
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ from ..types import UNSET, Unset
|
|||||||
|
|
||||||
T = TypeVar("T", bound="PongMessage")
|
T = TypeVar("T", bound="PongMessage")
|
||||||
|
|
||||||
|
|
||||||
@attr.s(auto_attribs=True)
|
@attr.s(auto_attribs=True)
|
||||||
class PongMessage:
|
class PongMessage:
|
||||||
""" """
|
""" """
|
||||||
@ -38,6 +37,7 @@ class PongMessage:
|
|||||||
else:
|
else:
|
||||||
message = PongEnum(_message)
|
message = PongEnum(_message)
|
||||||
|
|
||||||
|
|
||||||
pong_message = cls(
|
pong_message = cls(
|
||||||
message= message,
|
message= message,
|
||||||
)
|
)
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class ServerEnv(str, Enum):
|
class ServerEnv(str, Enum):
|
||||||
PRODUCTION = 'production'
|
PRODUCTION = 'production'
|
||||||
DEVELOPMENT = 'development'
|
DEVELOPMENT = 'development'
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class ValidOutputFileFormat(str, Enum):
|
class ValidOutputFileFormat(str, Enum):
|
||||||
STL = 'stl'
|
STL = 'stl'
|
||||||
OBJ = 'obj'
|
OBJ = 'obj'
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class ValidSourceFileFormat(str, Enum):
|
class ValidSourceFileFormat(str, Enum):
|
||||||
STL = 'stl'
|
STL = 'stl'
|
||||||
OBJ = 'obj'
|
OBJ = 'obj'
|
||||||
|
Reference in New Issue
Block a user