Update api spec (#93)
* YOYO NEW API SPEC! * update Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * I have generated the latest API! --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
		@ -269,7 +269,11 @@ def generateTypeAndExamplePython(
 | 
			
		||||
                    ) = generateTypeAndExamplePython("", prop, data, None)
 | 
			
		||||
                    example_imports = example_imports + prop_imports
 | 
			
		||||
                    parameter_example = parameter_example + (
 | 
			
		||||
                        "\n" + property_name + "=" + prop_example + ",\n"
 | 
			
		||||
                        "\n"
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + "="
 | 
			
		||||
                        + prop_example
 | 
			
		||||
                        + ",\n"
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
            parameter_example = parameter_example + ")"
 | 
			
		||||
@ -298,6 +302,8 @@ def generateTypeAndExamplePython(
 | 
			
		||||
                break
 | 
			
		||||
 | 
			
		||||
        return generateTypeAndExamplePython(name, schema["oneOf"][0], data, None)
 | 
			
		||||
    elif "allOf" in schema and len(schema["allOf"]) == 1:
 | 
			
		||||
        return generateTypeAndExamplePython(name, schema["allOf"][0], data, None)
 | 
			
		||||
    elif "$ref" in schema:
 | 
			
		||||
        parameter_type = schema["$ref"].replace("#/components/schemas/", "")
 | 
			
		||||
        # Get the schema for the reference.
 | 
			
		||||
@ -381,14 +387,17 @@ from kittycad.types import Response
 | 
			
		||||
            if "nullable" in parameter["schema"] and parameter["schema"]["nullable"]:
 | 
			
		||||
                parameter_type = "Optional[" + parameter_type + "]"
 | 
			
		||||
                optional_args.append(
 | 
			
		||||
                    camel_to_snake(parameter_name)
 | 
			
		||||
                    clean_parameter_name(parameter_name)
 | 
			
		||||
                    + "= None, # "
 | 
			
		||||
                    + parameter_type
 | 
			
		||||
                    + "\n"
 | 
			
		||||
                )
 | 
			
		||||
            else:
 | 
			
		||||
                params_str += (
 | 
			
		||||
                    camel_to_snake(parameter_name) + "=" + parameter_example + ",\n"
 | 
			
		||||
                    clean_parameter_name(parameter_name)
 | 
			
		||||
                    + "="
 | 
			
		||||
                    + parameter_example
 | 
			
		||||
                    + ",\n"
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
        for optional_arg in optional_args:
 | 
			
		||||
@ -429,7 +438,9 @@ from kittycad.types import Response
 | 
			
		||||
                + endpoint_ref.replace("List[", "").replace("]", "")
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        example_imports = example_imports + "from typing import Union, Any, Optional\n"
 | 
			
		||||
        example_imports = (
 | 
			
		||||
            example_imports + "from typing import Union, Any, Optional, List\n"
 | 
			
		||||
        )
 | 
			
		||||
        example_variable = "result: " + response_type + " = "
 | 
			
		||||
 | 
			
		||||
        example_imports = example_imports + "from kittycad.types import Response\n"
 | 
			
		||||
@ -638,7 +649,7 @@ async def test_"""
 | 
			
		||||
                formatTemplate = (
 | 
			
		||||
                    formatTemplate
 | 
			
		||||
                    + ", "
 | 
			
		||||
                    + parameter_name
 | 
			
		||||
                    + clean_parameter_name(parameter_name)
 | 
			
		||||
                    + "="
 | 
			
		||||
                    + camel_to_snake(parameter_name)
 | 
			
		||||
                )
 | 
			
		||||
@ -894,7 +905,7 @@ async def test_"""
 | 
			
		||||
    f.write("\tkwargs = _get_kwargs(\n")
 | 
			
		||||
    params = get_function_parameters(endpoint, request_body_type)
 | 
			
		||||
    for param in params:
 | 
			
		||||
        f.write("\t\t" + param + "=" + param + ",\n")
 | 
			
		||||
        f.write("\t\t" + clean_parameter_name(param) + "=" + param + ",\n")
 | 
			
		||||
    f.write("\t\tclient=client,\n")
 | 
			
		||||
    f.write("\t)\n")
 | 
			
		||||
    f.write("\n")
 | 
			
		||||
@ -973,7 +984,7 @@ async def test_"""
 | 
			
		||||
    f.write("\treturn sync_detailed(\n")
 | 
			
		||||
    params = get_function_parameters(endpoint, request_body_type)
 | 
			
		||||
    for param in params:
 | 
			
		||||
        f.write("\t\t" + param + "=" + param + ",\n")
 | 
			
		||||
        f.write("\t\t" + clean_parameter_name(param) + "=" + param + ",\n")
 | 
			
		||||
    f.write("\t\tclient=client,\n")
 | 
			
		||||
    f.write("\t).parsed\n")
 | 
			
		||||
 | 
			
		||||
@ -1042,7 +1053,7 @@ async def test_"""
 | 
			
		||||
    f.write("\tkwargs = _get_kwargs(\n")
 | 
			
		||||
    params = get_function_parameters(endpoint, request_body_type)
 | 
			
		||||
    for param in params:
 | 
			
		||||
        f.write("\t\t" + param + "=" + param + ",\n")
 | 
			
		||||
        f.write("\t\t" + clean_parameter_name(param) + "=" + param + ",\n")
 | 
			
		||||
    f.write("\t\tclient=client,\n")
 | 
			
		||||
    f.write("\t)\n")
 | 
			
		||||
    f.write("\n")
 | 
			
		||||
@ -1120,7 +1131,7 @@ async def test_"""
 | 
			
		||||
    f.write("\t\tawait asyncio_detailed(\n")
 | 
			
		||||
    params = get_function_parameters(endpoint, request_body_type)
 | 
			
		||||
    for param in params:
 | 
			
		||||
        f.write("\t\t" + param + "=" + param + ",\n")
 | 
			
		||||
        f.write("\t\t" + clean_parameter_name(param) + "=" + param + ",\n")
 | 
			
		||||
    f.write("\t\t\tclient=client,\n")
 | 
			
		||||
    f.write("\t\t)\n")
 | 
			
		||||
    f.write("\t).parsed\n")
 | 
			
		||||
@ -1439,8 +1450,14 @@ def generateObjectTypeCode(name: str, schema: dict, type_name: str, data: dict)
 | 
			
		||||
    # Iternate over the properties.
 | 
			
		||||
    for property_name in schema["properties"]:
 | 
			
		||||
        # Write the property.
 | 
			
		||||
        f.write("\t\tif " + property_name + " is not UNSET:\n")
 | 
			
		||||
        f.write("\t\t\tfield_dict['" + property_name + "'] = " + property_name + "\n")
 | 
			
		||||
        f.write("\t\tif " + clean_parameter_name(property_name) + " is not UNSET:\n")
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t\tfield_dict['"
 | 
			
		||||
            + property_name
 | 
			
		||||
            + "'] = "
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + "\n"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    f.write("\n")
 | 
			
		||||
    f.write("\t\treturn field_dict\n")
 | 
			
		||||
@ -1468,7 +1485,13 @@ def generateObjectTypeCode(name: str, schema: dict, type_name: str, data: dict)
 | 
			
		||||
    # Iternate over the properties.
 | 
			
		||||
    for property_name in schema["properties"]:
 | 
			
		||||
        # Write the property.
 | 
			
		||||
        f.write("\t\t\t" + property_name + "= " + property_name + ",\n")
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t\t"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + "= "
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + ",\n"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    # Close the class.
 | 
			
		||||
    f.write("\t\t)\n")
 | 
			
		||||
@ -1531,25 +1554,51 @@ def renderTypeToDict(f, property_name: str, property_schema: dict, data: dict):
 | 
			
		||||
                ):
 | 
			
		||||
                    f.write("\t\t" + property_name + ": Union[Unset, str] = UNSET\n")
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\tif not isinstance(self." + property_name + ", Unset):\n"
 | 
			
		||||
                        "\t\tif not isinstance(self."
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ", Unset):\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\t\t"
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + " = self."
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ".isoformat()\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    # return early
 | 
			
		||||
                    return
 | 
			
		||||
 | 
			
		||||
            f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        elif property_type == "integer":
 | 
			
		||||
            f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        elif property_type == "number":
 | 
			
		||||
            f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        elif property_type == "boolean":
 | 
			
		||||
            f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        elif property_type == "array":
 | 
			
		||||
            if "items" in property_schema:
 | 
			
		||||
                if "$ref" in property_schema["items"]:
 | 
			
		||||
@ -1594,14 +1643,40 @@ def renderTypeToDict(f, property_name: str, property_schema: dict, data: dict):
 | 
			
		||||
                + property_type
 | 
			
		||||
                + "]] = UNSET\n"
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\t\tif not isinstance(self." + property_name + ", Unset):\n")
 | 
			
		||||
            f.write("\t\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\tif not isinstance(self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ", Unset):\n"
 | 
			
		||||
            )
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
    elif "$ref" in property_schema:
 | 
			
		||||
        ref = property_schema["$ref"].replace("#/components/schemas/", "")
 | 
			
		||||
        f.write("\t\tif not isinstance(self." + property_name + ", Unset):\n")
 | 
			
		||||
        f.write("\t\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\tif not isinstance(self."
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + ", Unset):\n"
 | 
			
		||||
        )
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t\t"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + " = self."
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + "\n"
 | 
			
		||||
        )
 | 
			
		||||
    elif "allOf" in property_schema:
 | 
			
		||||
        thing = property_schema["allOf"][0]
 | 
			
		||||
        if "$ref" in thing:
 | 
			
		||||
@ -1610,15 +1685,32 @@ def renderTypeToDict(f, property_name: str, property_schema: dict, data: dict):
 | 
			
		||||
                return renderTypeToDict(
 | 
			
		||||
                    f, property_name, data["components"]["schemas"][ref], data
 | 
			
		||||
                )
 | 
			
		||||
            f.write("\t\tif not isinstance(self." + property_name + ", Unset):\n")
 | 
			
		||||
            f.write("\t\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\tif not isinstance(self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ", Unset):\n"
 | 
			
		||||
            )
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = self."
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + "\n"
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            raise Exception("unknown allOf type: ", property_schema)
 | 
			
		||||
    else:
 | 
			
		||||
        f.write("\t\t" + property_name + " = self." + property_name + "\n")
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + " = self."
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + "\n"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def renderTypeInit(f, property_name: str, property_schema: dict, data: dict):
 | 
			
		||||
    property_name = clean_parameter_name(property_name)
 | 
			
		||||
    if "type" in property_schema:
 | 
			
		||||
        property_type = property_schema["type"]
 | 
			
		||||
 | 
			
		||||
@ -1726,22 +1818,30 @@ def renderTypeFromDict(f, property_name: str, property_schema: dict, data: dict)
 | 
			
		||||
                ):
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\t_"
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ' = d.pop("'
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + '", UNSET)\n'
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\t" + property_name + ": Union[Unset, datetime.datetime]\n"
 | 
			
		||||
                        "\t\t"
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ": Union[Unset, datetime.datetime]\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\tif isinstance(_"
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ", Unset):\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\t\t" + clean_parameter_name(property_name) + " = UNSET\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write("\t\tif isinstance(_" + property_name + ", Unset):\n")
 | 
			
		||||
                    f.write("\t\t\t" + property_name + " = UNSET\n")
 | 
			
		||||
                    f.write("\t\telse:\n")
 | 
			
		||||
                    f.write(
 | 
			
		||||
                        "\t\t\t"
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + " = isoparse(_"
 | 
			
		||||
                        + property_name
 | 
			
		||||
                        + clean_parameter_name(property_name)
 | 
			
		||||
                        + ")\n"
 | 
			
		||||
                    )
 | 
			
		||||
                    f.write("\n")
 | 
			
		||||
@ -1749,22 +1849,38 @@ def renderTypeFromDict(f, property_name: str, property_schema: dict, data: dict)
 | 
			
		||||
                    return
 | 
			
		||||
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ' = d.pop("'
 | 
			
		||||
                + property_name
 | 
			
		||||
                + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        elif property_type == "integer":
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ' = d.pop("'
 | 
			
		||||
                + property_name
 | 
			
		||||
                + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        elif property_type == "number":
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ' = d.pop("'
 | 
			
		||||
                + property_name
 | 
			
		||||
                + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        elif property_type == "boolean":
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ' = d.pop("'
 | 
			
		||||
                + property_name
 | 
			
		||||
                + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        elif property_type == "array":
 | 
			
		||||
@ -1808,7 +1924,7 @@ def renderTypeFromDict(f, property_name: str, property_schema: dict, data: dict)
 | 
			
		||||
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + property_name
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = cast(List["
 | 
			
		||||
                + property_type
 | 
			
		||||
                + '], d.pop("'
 | 
			
		||||
@ -1818,62 +1934,70 @@ def renderTypeFromDict(f, property_name: str, property_schema: dict, data: dict)
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        else:
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
                "\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ' = d.pop("'
 | 
			
		||||
                + property_name
 | 
			
		||||
                + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
    elif "$ref" in property_schema:
 | 
			
		||||
        ref = property_schema["$ref"].replace("#/components/schemas/", "")
 | 
			
		||||
        # Get the type for the reference.
 | 
			
		||||
        ref_schema = data["components"]["schemas"][ref]
 | 
			
		||||
 | 
			
		||||
        f.write("\t\t_" + property_name + ' = d.pop("' + property_name + '", UNSET)\n')
 | 
			
		||||
        f.write("\t\t" + property_name + ": Union[Unset, " + ref + "]\n")
 | 
			
		||||
        f.write("\t\tif isinstance(_" + property_name + ", Unset):\n")
 | 
			
		||||
        f.write("\t\t\t" + property_name + " = UNSET\n")
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t_"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + ' = d.pop("'
 | 
			
		||||
            + property_name
 | 
			
		||||
            + '", UNSET)\n'
 | 
			
		||||
        )
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + ": Union[Unset, "
 | 
			
		||||
            + ref
 | 
			
		||||
            + "]\n"
 | 
			
		||||
        )
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\tif isinstance(_" + clean_parameter_name(property_name) + ", Unset):\n"
 | 
			
		||||
        )
 | 
			
		||||
        f.write("\t\t\t" + clean_parameter_name(property_name) + " = UNSET\n")
 | 
			
		||||
        f.write("\t\telse:\n")
 | 
			
		||||
        nested_objects = False
 | 
			
		||||
        if "oneOf" in ref_schema and len(ref_schema["oneOf"]) > 0:
 | 
			
		||||
            # Check if the nested_object is a object.
 | 
			
		||||
            for one_of in ref_schema["oneOf"]:
 | 
			
		||||
                if "type" in one_of and one_of["type"] == "object":
 | 
			
		||||
                    nested_objects = True
 | 
			
		||||
                    break
 | 
			
		||||
 | 
			
		||||
        if nested_objects:
 | 
			
		||||
        if isNestedObjectOneOf(ref_schema):
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t\t"
 | 
			
		||||
                + property_name
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = _"
 | 
			
		||||
                + property_name
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " # type: ignore[arg-type]\n"
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t\t" + property_name + " = " + ref + "(_" + property_name + ")\n"
 | 
			
		||||
                "\t\t\t"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + " = "
 | 
			
		||||
                + ref
 | 
			
		||||
                + "(_"
 | 
			
		||||
                + clean_parameter_name(property_name)
 | 
			
		||||
                + ")\n"
 | 
			
		||||
            )
 | 
			
		||||
        f.write("\n")
 | 
			
		||||
    elif "allOf" in property_schema:
 | 
			
		||||
        if len(property_schema["allOf"]) != 1:
 | 
			
		||||
            print(property_schema)
 | 
			
		||||
            raise Exception("Unknown allOf")
 | 
			
		||||
        thing = property_schema["allOf"][0]
 | 
			
		||||
        if "$ref" in thing:
 | 
			
		||||
            ref = thing["$ref"].replace("#/components/schemas/", "")
 | 
			
		||||
            if ref == "Uuid":
 | 
			
		||||
                return renderTypeFromDict(
 | 
			
		||||
                    f, property_name, data["components"]["schemas"][ref], data
 | 
			
		||||
                )
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t_" + property_name + ' = d.pop("' + property_name + '", UNSET)\n'
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\t\t" + property_name + ": Union[Unset, " + ref + "]\n")
 | 
			
		||||
            f.write("\t\tif isinstance(_" + property_name + ", Unset):\n")
 | 
			
		||||
            f.write("\t\t\t" + property_name + " = UNSET\n")
 | 
			
		||||
            f.write("\t\telse:\n")
 | 
			
		||||
            f.write(
 | 
			
		||||
                "\t\t\t" + property_name + " = " + ref + "(_" + property_name + ")\n"
 | 
			
		||||
            )
 | 
			
		||||
            f.write("\n")
 | 
			
		||||
        else:
 | 
			
		||||
            raise Exception("unknown allOf type: ", property_schema)
 | 
			
		||||
        renderTypeFromDict(f, property_name, thing, data)
 | 
			
		||||
    else:
 | 
			
		||||
        f.write("\t\t" + property_name + ' = d.pop("' + property_name + '", UNSET)\n')
 | 
			
		||||
        f.write(
 | 
			
		||||
            "\t\t"
 | 
			
		||||
            + clean_parameter_name(property_name)
 | 
			
		||||
            + ' = d.pop("'
 | 
			
		||||
            + property_name
 | 
			
		||||
            + '", UNSET)\n'
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def hasDateTime(schema: dict) -> bool:
 | 
			
		||||
@ -2089,6 +2213,10 @@ def to_camel_case(s: str):
 | 
			
		||||
    return "".join([s[0].lower(), s[1:]])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def clean_parameter_name(name: str):
 | 
			
		||||
    return camel_to_snake(name).replace("from", "from_")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def camel_to_snake(name: str):
 | 
			
		||||
    name = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name)
 | 
			
		||||
    return re.sub("([a-z0-9])([A-Z])", r"\1_\2", name).lower().replace("-", "_")
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1 +0,0 @@
 | 
			
		||||
""" Contains methods for accessing the drawing API paths: Drawing API for updating your 3D files using the KittyCAD engine. """  # noqa: E501
 | 
			
		||||
@ -86,7 +86,10 @@ def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileCenterOfMass, Error]]:
 | 
			
		||||
    """Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the cartesian co-ordinate in world space measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
@ -120,7 +123,10 @@ async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileCenterOfMass, Error]]:
 | 
			
		||||
    """Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the cartesian co-ordinate in world space measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,10 @@ def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileDensity, Error]]:
 | 
			
		||||
    """Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
@ -131,7 +134,10 @@ async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileDensity, Error]]:
 | 
			
		||||
    """Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,10 @@ def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileMass, Error]]:
 | 
			
		||||
    """Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
@ -131,7 +134,10 @@ async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileMass, Error]]:
 | 
			
		||||
    """Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
 | 
			
		||||
@ -86,7 +86,10 @@ def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileSurfaceArea, Error]]:
 | 
			
		||||
    """Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the square measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
@ -120,7 +123,10 @@ async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileSurfaceArea, Error]]:
 | 
			
		||||
    """Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the square measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,10 @@ def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileVolume, Error]]:
 | 
			
		||||
    """Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the cubic measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
@ -118,7 +121,10 @@ async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[FileVolume, Error]]:
 | 
			
		||||
    """Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    """We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
 | 
			
		||||
    Currently, this endpoint returns the cubic measure units.
 | 
			
		||||
    In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
 | 
			
		||||
    Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
 | 
			
		||||
    If the operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								kittycad/api/modeling/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								kittycad/api/modeling/__init__.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
""" Contains methods for accessing the modeling API paths: Modeling API for updating your 3D files using the KittyCAD engine. """  # noqa: E501
 | 
			
		||||
@ -3,17 +3,17 @@ from typing import Any, Dict, Optional, Union
 | 
			
		||||
import httpx
 | 
			
		||||
 | 
			
		||||
from ...client import Client
 | 
			
		||||
from ...models.drawing_cmd_req import DrawingCmdReq
 | 
			
		||||
from ...models.error import Error
 | 
			
		||||
from ...models.modeling_cmd_req import ModelingCmdReq
 | 
			
		||||
from ...types import Response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _get_kwargs(
 | 
			
		||||
    body: DrawingCmdReq,
 | 
			
		||||
    body: ModelingCmdReq,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Dict[str, Any]:
 | 
			
		||||
    url = "{}/drawing/cmd".format(client.base_url)  # noqa: E501
 | 
			
		||||
    url = "{}/modeling/cmd".format(client.base_url)  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    headers: Dict[str, Any] = client.get_headers()
 | 
			
		||||
    cookies: Dict[str, Any] = client.get_cookies()
 | 
			
		||||
@ -52,7 +52,7 @@ def _build_response(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync_detailed(
 | 
			
		||||
    body: DrawingCmdReq,
 | 
			
		||||
    body: ModelingCmdReq,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Optional[Union[dict, Error]]]:
 | 
			
		||||
@ -70,7 +70,7 @@ def sync_detailed(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync(
 | 
			
		||||
    body: DrawingCmdReq,
 | 
			
		||||
    body: ModelingCmdReq,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[dict, Error]]:
 | 
			
		||||
@ -83,7 +83,7 @@ def sync(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio_detailed(
 | 
			
		||||
    body: DrawingCmdReq,
 | 
			
		||||
    body: ModelingCmdReq,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Optional[Union[dict, Error]]]:
 | 
			
		||||
@ -99,7 +99,7 @@ async def asyncio_detailed(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio(
 | 
			
		||||
    body: DrawingCmdReq,
 | 
			
		||||
    body: ModelingCmdReq,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[dict, Error]]:
 | 
			
		||||
@ -3,18 +3,18 @@ from typing import Any, Dict, Optional, Union
 | 
			
		||||
import httpx
 | 
			
		||||
 | 
			
		||||
from ...client import Client
 | 
			
		||||
from ...models.drawing_cmd_req_batch import DrawingCmdReqBatch
 | 
			
		||||
from ...models.drawing_outcomes import DrawingOutcomes
 | 
			
		||||
from ...models.error import Error
 | 
			
		||||
from ...models.modeling_cmd_req_batch import ModelingCmdReqBatch
 | 
			
		||||
from ...models.modeling_outcomes import ModelingOutcomes
 | 
			
		||||
from ...types import Response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _get_kwargs(
 | 
			
		||||
    body: DrawingCmdReqBatch,
 | 
			
		||||
    body: ModelingCmdReqBatch,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Dict[str, Any]:
 | 
			
		||||
    url = "{}/drawing/cmd_batch".format(client.base_url)  # noqa: E501
 | 
			
		||||
    url = "{}/modeling/cmd_batch".format(client.base_url)  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    headers: Dict[str, Any] = client.get_headers()
 | 
			
		||||
    cookies: Dict[str, Any] = client.get_cookies()
 | 
			
		||||
@ -30,9 +30,9 @@ def _get_kwargs(
 | 
			
		||||
 | 
			
		||||
def _parse_response(
 | 
			
		||||
    *, response: httpx.Response
 | 
			
		||||
) -> Optional[Union[DrawingOutcomes, Error]]:
 | 
			
		||||
) -> Optional[Union[ModelingOutcomes, Error]]:
 | 
			
		||||
    if response.status_code == 200:
 | 
			
		||||
        response_200 = DrawingOutcomes.from_dict(response.json())
 | 
			
		||||
        response_200 = ModelingOutcomes.from_dict(response.json())
 | 
			
		||||
        return response_200
 | 
			
		||||
    if response.status_code == 400:
 | 
			
		||||
        response_4XX = Error.from_dict(response.json())
 | 
			
		||||
@ -45,7 +45,7 @@ def _parse_response(
 | 
			
		||||
 | 
			
		||||
def _build_response(
 | 
			
		||||
    *, response: httpx.Response
 | 
			
		||||
) -> Response[Optional[Union[DrawingOutcomes, Error]]]:
 | 
			
		||||
) -> Response[Optional[Union[ModelingOutcomes, Error]]]:
 | 
			
		||||
    return Response(
 | 
			
		||||
        status_code=response.status_code,
 | 
			
		||||
        content=response.content,
 | 
			
		||||
@ -55,10 +55,10 @@ def _build_response(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync_detailed(
 | 
			
		||||
    body: DrawingCmdReqBatch,
 | 
			
		||||
    body: ModelingCmdReqBatch,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Optional[Union[DrawingOutcomes, Error]]]:
 | 
			
		||||
) -> Response[Optional[Union[ModelingOutcomes, Error]]]:
 | 
			
		||||
    kwargs = _get_kwargs(
 | 
			
		||||
        body=body,
 | 
			
		||||
        client=client,
 | 
			
		||||
@ -73,10 +73,10 @@ def sync_detailed(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync(
 | 
			
		||||
    body: DrawingCmdReqBatch,
 | 
			
		||||
    body: ModelingCmdReqBatch,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[DrawingOutcomes, Error]]:
 | 
			
		||||
) -> Optional[Union[ModelingOutcomes, Error]]:
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
        body=body,
 | 
			
		||||
@ -85,10 +85,10 @@ def sync(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio_detailed(
 | 
			
		||||
    body: DrawingCmdReqBatch,
 | 
			
		||||
    body: ModelingCmdReqBatch,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Optional[Union[DrawingOutcomes, Error]]]:
 | 
			
		||||
) -> Response[Optional[Union[ModelingOutcomes, Error]]]:
 | 
			
		||||
    kwargs = _get_kwargs(
 | 
			
		||||
        body=body,
 | 
			
		||||
        client=client,
 | 
			
		||||
@ -101,10 +101,10 @@ async def asyncio_detailed(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio(
 | 
			
		||||
    body: DrawingCmdReqBatch,
 | 
			
		||||
    body: ModelingCmdReqBatch,
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Optional[Union[DrawingOutcomes, Error]]:
 | 
			
		||||
) -> Optional[Union[ModelingOutcomes, Error]]:
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
        await asyncio_detailed(
 | 
			
		||||
							
								
								
									
										90
									
								
								kittycad/api/modeling/modeling_commands_ws.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								kittycad/api/modeling/modeling_commands_ws.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
			
		||||
from typing import Any, Dict
 | 
			
		||||
 | 
			
		||||
import httpx
 | 
			
		||||
 | 
			
		||||
from ...client import Client
 | 
			
		||||
from ...types import Response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _get_kwargs(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Dict[str, Any]:
 | 
			
		||||
    url = "{}/ws/modeling/commands".format(client.base_url)  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    headers: Dict[str, Any] = client.get_headers()
 | 
			
		||||
    cookies: Dict[str, Any] = client.get_cookies()
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
        "url": url,
 | 
			
		||||
        "headers": headers,
 | 
			
		||||
        "cookies": cookies,
 | 
			
		||||
        "timeout": client.get_timeout(),
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _parse_response(*, response: httpx.Response):
 | 
			
		||||
    return
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _build_response(*, response: httpx.Response) -> Response[Any]:
 | 
			
		||||
    return Response(
 | 
			
		||||
        status_code=response.status_code,
 | 
			
		||||
        content=response.content,
 | 
			
		||||
        headers=response.headers,
 | 
			
		||||
        parsed=_parse_response(response=response),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync_detailed(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Any]:
 | 
			
		||||
    kwargs = _get_kwargs(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    response = httpx.get(
 | 
			
		||||
        verify=client.verify_ssl,
 | 
			
		||||
        **kwargs,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    return _build_response(response=response)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sync(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
):
 | 
			
		||||
    """Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
    ).parsed
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio_detailed(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
) -> Response[Any]:
 | 
			
		||||
    kwargs = _get_kwargs(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
 | 
			
		||||
        response = await _client.get(**kwargs)
 | 
			
		||||
 | 
			
		||||
    return _build_response(response=response)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def asyncio(
 | 
			
		||||
    *,
 | 
			
		||||
    client: Client,
 | 
			
		||||
):
 | 
			
		||||
    """Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
        await asyncio_detailed(
 | 
			
		||||
            client=client,
 | 
			
		||||
        )
 | 
			
		||||
    ).parsed
 | 
			
		||||
@ -25,7 +25,6 @@ from kittycad.api.apps import (
 | 
			
		||||
    apps_github_webhook,
 | 
			
		||||
)
 | 
			
		||||
from kittycad.api.constant import get_physics_constant
 | 
			
		||||
from kittycad.api.drawing import cmd, cmd_batch
 | 
			
		||||
from kittycad.api.executor import create_executor_term, create_file_execution
 | 
			
		||||
from kittycad.api.file import (
 | 
			
		||||
    create_file_center_of_mass,
 | 
			
		||||
@ -44,6 +43,7 @@ from kittycad.api.meta import (
 | 
			
		||||
    get_schema,
 | 
			
		||||
    ping,
 | 
			
		||||
)
 | 
			
		||||
from kittycad.api.modeling import cmd, cmd_batch, modeling_commands_ws
 | 
			
		||||
from kittycad.api.payments import (
 | 
			
		||||
    create_payment_information_for_user,
 | 
			
		||||
    create_payment_intent_for_user,
 | 
			
		||||
@ -113,7 +113,6 @@ from kittycad.models import (
 | 
			
		||||
    CodeOutput,
 | 
			
		||||
    Customer,
 | 
			
		||||
    CustomerBalance,
 | 
			
		||||
    DrawingOutcomes,
 | 
			
		||||
    Error,
 | 
			
		||||
    ExtendedUser,
 | 
			
		||||
    ExtendedUserResultsPage,
 | 
			
		||||
@ -126,6 +125,7 @@ from kittycad.models import (
 | 
			
		||||
    Invoice,
 | 
			
		||||
    Mesh,
 | 
			
		||||
    Metadata,
 | 
			
		||||
    ModelingOutcomes,
 | 
			
		||||
    Onboarding,
 | 
			
		||||
    PaymentIntent,
 | 
			
		||||
    PaymentMethod,
 | 
			
		||||
@ -170,15 +170,16 @@ from kittycad.models.api_call_status import ApiCallStatus
 | 
			
		||||
from kittycad.models.billing_info import BillingInfo
 | 
			
		||||
from kittycad.models.code_language import CodeLanguage
 | 
			
		||||
from kittycad.models.created_at_sort_mode import CreatedAtSortMode
 | 
			
		||||
from kittycad.models.drawing_cmd import DrawCircle
 | 
			
		||||
from kittycad.models.drawing_cmd_id import DrawingCmdId
 | 
			
		||||
from kittycad.models.drawing_cmd_req import DrawingCmdReq
 | 
			
		||||
from kittycad.models.drawing_cmd_req_batch import DrawingCmdReqBatch
 | 
			
		||||
from kittycad.models.email_authentication_form import EmailAuthenticationForm
 | 
			
		||||
from kittycad.models.file_export_format import FileExportFormat
 | 
			
		||||
from kittycad.models.file_import_format import FileImportFormat
 | 
			
		||||
from kittycad.models.image_type import ImageType
 | 
			
		||||
from kittycad.models.line3d import Line3d
 | 
			
		||||
from kittycad.models.modeling_cmd_id import ModelingCmdId
 | 
			
		||||
from kittycad.models.modeling_cmd_req import ModelingCmdReq
 | 
			
		||||
from kittycad.models.modeling_cmd_req_batch import ModelingCmdReqBatch
 | 
			
		||||
from kittycad.models.physics_constant_name import PhysicsConstantName
 | 
			
		||||
from kittycad.models.point3d import Point3d
 | 
			
		||||
from kittycad.models.unit_acceleration_format import UnitAccelerationFormat
 | 
			
		||||
from kittycad.models.unit_angle_format import UnitAngleFormat
 | 
			
		||||
from kittycad.models.unit_angular_velocity_format import UnitAngularVelocityFormat
 | 
			
		||||
@ -1022,189 +1023,6 @@ async def test_get_physics_constant_async():
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_cmd():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    cmd.sync(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReq(
 | 
			
		||||
            cmd=DrawCircle(
 | 
			
		||||
                center=[
 | 
			
		||||
                    3.14,
 | 
			
		||||
                    3.14,
 | 
			
		||||
                ],
 | 
			
		||||
                radius=3.14,
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR if you need more info (e.g. status_code)
 | 
			
		||||
    cmd.sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReq(
 | 
			
		||||
            cmd=DrawCircle(
 | 
			
		||||
                center=[
 | 
			
		||||
                    3.14,
 | 
			
		||||
                    3.14,
 | 
			
		||||
                ],
 | 
			
		||||
                radius=3.14,
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# OR run async
 | 
			
		||||
@pytest.mark.asyncio
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
async def test_cmd_async():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    await cmd.asyncio(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReq(
 | 
			
		||||
            cmd=DrawCircle(
 | 
			
		||||
                center=[
 | 
			
		||||
                    3.14,
 | 
			
		||||
                    3.14,
 | 
			
		||||
                ],
 | 
			
		||||
                radius=3.14,
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR run async with more info
 | 
			
		||||
    await cmd.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReq(
 | 
			
		||||
            cmd=DrawCircle(
 | 
			
		||||
                center=[
 | 
			
		||||
                    3.14,
 | 
			
		||||
                    3.14,
 | 
			
		||||
                ],
 | 
			
		||||
                radius=3.14,
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_cmd_batch():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    result: Optional[Union[DrawingOutcomes, Error]] = cmd_batch.sync(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": DrawingCmdReq(
 | 
			
		||||
                    cmd=DrawCircle(
 | 
			
		||||
                        center=[
 | 
			
		||||
                            3.14,
 | 
			
		||||
                            3.14,
 | 
			
		||||
                        ],
 | 
			
		||||
                        radius=3.14,
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if isinstance(result, Error) or result is None:
 | 
			
		||||
        print(result)
 | 
			
		||||
        raise Exception("Error in response")
 | 
			
		||||
 | 
			
		||||
    body: DrawingOutcomes = result
 | 
			
		||||
    print(body)
 | 
			
		||||
 | 
			
		||||
    # OR if you need more info (e.g. status_code)
 | 
			
		||||
    response: Response[
 | 
			
		||||
        Optional[Union[DrawingOutcomes, Error]]
 | 
			
		||||
    ] = cmd_batch.sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": DrawingCmdReq(
 | 
			
		||||
                    cmd=DrawCircle(
 | 
			
		||||
                        center=[
 | 
			
		||||
                            3.14,
 | 
			
		||||
                            3.14,
 | 
			
		||||
                        ],
 | 
			
		||||
                        radius=3.14,
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# OR run async
 | 
			
		||||
@pytest.mark.asyncio
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
async def test_cmd_batch_async():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    result: Optional[Union[DrawingOutcomes, Error]] = await cmd_batch.asyncio(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": DrawingCmdReq(
 | 
			
		||||
                    cmd=DrawCircle(
 | 
			
		||||
                        center=[
 | 
			
		||||
                            3.14,
 | 
			
		||||
                            3.14,
 | 
			
		||||
                        ],
 | 
			
		||||
                        radius=3.14,
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR run async with more info
 | 
			
		||||
    response: Response[
 | 
			
		||||
        Optional[Union[DrawingOutcomes, Error]]
 | 
			
		||||
    ] = await cmd_batch.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=DrawingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": DrawingCmdReq(
 | 
			
		||||
                    cmd=DrawCircle(
 | 
			
		||||
                        center=[
 | 
			
		||||
                            3.14,
 | 
			
		||||
                            3.14,
 | 
			
		||||
                        ],
 | 
			
		||||
                        radius=3.14,
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=DrawingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_create_file_center_of_mass():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
@ -1625,6 +1443,229 @@ async def test_logout_async():
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_cmd():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    cmd.sync(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReq(
 | 
			
		||||
            cmd=Line3d(
 | 
			
		||||
                from_=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
                to=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR if you need more info (e.g. status_code)
 | 
			
		||||
    cmd.sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReq(
 | 
			
		||||
            cmd=Line3d(
 | 
			
		||||
                from_=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
                to=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# OR run async
 | 
			
		||||
@pytest.mark.asyncio
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
async def test_cmd_async():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    await cmd.asyncio(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReq(
 | 
			
		||||
            cmd=Line3d(
 | 
			
		||||
                from_=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
                to=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR run async with more info
 | 
			
		||||
    await cmd.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReq(
 | 
			
		||||
            cmd=Line3d(
 | 
			
		||||
                from_=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
                to=Point3d(
 | 
			
		||||
                    x=3.14,
 | 
			
		||||
                    y=3.14,
 | 
			
		||||
                    z=3.14,
 | 
			
		||||
                ),
 | 
			
		||||
            ),
 | 
			
		||||
            cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_cmd_batch():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    result: Optional[Union[ModelingOutcomes, Error]] = cmd_batch.sync(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": ModelingCmdReq(
 | 
			
		||||
                    cmd=Line3d(
 | 
			
		||||
                        from_=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                        to=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if isinstance(result, Error) or result is None:
 | 
			
		||||
        print(result)
 | 
			
		||||
        raise Exception("Error in response")
 | 
			
		||||
 | 
			
		||||
    body: ModelingOutcomes = result
 | 
			
		||||
    print(body)
 | 
			
		||||
 | 
			
		||||
    # OR if you need more info (e.g. status_code)
 | 
			
		||||
    response: Response[
 | 
			
		||||
        Optional[Union[ModelingOutcomes, Error]]
 | 
			
		||||
    ] = cmd_batch.sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": ModelingCmdReq(
 | 
			
		||||
                    cmd=Line3d(
 | 
			
		||||
                        from_=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                        to=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# OR run async
 | 
			
		||||
@pytest.mark.asyncio
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
async def test_cmd_batch_async():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    result: Optional[Union[ModelingOutcomes, Error]] = await cmd_batch.asyncio(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": ModelingCmdReq(
 | 
			
		||||
                    cmd=Line3d(
 | 
			
		||||
                        from_=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                        to=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR run async with more info
 | 
			
		||||
    response: Response[
 | 
			
		||||
        Optional[Union[ModelingOutcomes, Error]]
 | 
			
		||||
    ] = await cmd_batch.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
        body=ModelingCmdReqBatch(
 | 
			
		||||
            cmds={
 | 
			
		||||
                "<string>": ModelingCmdReq(
 | 
			
		||||
                    cmd=Line3d(
 | 
			
		||||
                        from_=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                        to=Point3d(
 | 
			
		||||
                            x=3.14,
 | 
			
		||||
                            y=3.14,
 | 
			
		||||
                            z=3.14,
 | 
			
		||||
                        ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    cmd_id=ModelingCmdId("<uuid>"),
 | 
			
		||||
                    file_id="<string>",
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            file_id="<string>",
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_get_openai_schema():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
@ -4792,3 +4833,35 @@ async def test_create_executor_term_async():
 | 
			
		||||
    await create_executor_term.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
def test_modeling_commands_ws():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    modeling_commands_ws.sync(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR if you need more info (e.g. status_code)
 | 
			
		||||
    modeling_commands_ws.sync_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# OR run async
 | 
			
		||||
@pytest.mark.asyncio
 | 
			
		||||
@pytest.mark.skip
 | 
			
		||||
async def test_modeling_commands_ws_async():
 | 
			
		||||
    # Create our client.
 | 
			
		||||
    client = ClientFromEnv()
 | 
			
		||||
 | 
			
		||||
    await modeling_commands_ws.asyncio(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # OR run async with more info
 | 
			
		||||
    await modeling_commands_ws.asyncio_detailed(
 | 
			
		||||
        client=client,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -36,13 +36,6 @@ from .device_access_token_request_form import DeviceAccessTokenRequestForm
 | 
			
		||||
from .device_auth_request_form import DeviceAuthRequestForm
 | 
			
		||||
from .device_auth_verify_params import DeviceAuthVerifyParams
 | 
			
		||||
from .docker_system_info import DockerSystemInfo
 | 
			
		||||
from .drawing_cmd import DrawingCmd
 | 
			
		||||
from .drawing_cmd_id import DrawingCmdId
 | 
			
		||||
from .drawing_cmd_req import DrawingCmdReq
 | 
			
		||||
from .drawing_cmd_req_batch import DrawingCmdReqBatch
 | 
			
		||||
from .drawing_error import DrawingError
 | 
			
		||||
from .drawing_outcome import DrawingOutcome
 | 
			
		||||
from .drawing_outcomes import DrawingOutcomes
 | 
			
		||||
from .email_authentication_form import EmailAuthenticationForm
 | 
			
		||||
from .engine_metadata import EngineMetadata
 | 
			
		||||
from .environment import Environment
 | 
			
		||||
@ -50,6 +43,7 @@ from .error import Error
 | 
			
		||||
from .executor_metadata import ExecutorMetadata
 | 
			
		||||
from .extended_user import ExtendedUser
 | 
			
		||||
from .extended_user_results_page import ExtendedUserResultsPage
 | 
			
		||||
from .extrude import Extrude
 | 
			
		||||
from .file_center_of_mass import FileCenterOfMass
 | 
			
		||||
from .file_conversion import FileConversion
 | 
			
		||||
from .file_density import FileDensity
 | 
			
		||||
@ -70,10 +64,18 @@ from .jetstream_api_stats import JetstreamApiStats
 | 
			
		||||
from .jetstream_config import JetstreamConfig
 | 
			
		||||
from .jetstream_stats import JetstreamStats
 | 
			
		||||
from .leaf_node import LeafNode
 | 
			
		||||
from .line3d import Line3d
 | 
			
		||||
from .mesh import Mesh
 | 
			
		||||
from .meta_cluster_info import MetaClusterInfo
 | 
			
		||||
from .metadata import Metadata
 | 
			
		||||
from .method import Method
 | 
			
		||||
from .modeling_cmd import ModelingCmd
 | 
			
		||||
from .modeling_cmd_id import ModelingCmdId
 | 
			
		||||
from .modeling_cmd_req import ModelingCmdReq
 | 
			
		||||
from .modeling_cmd_req_batch import ModelingCmdReqBatch
 | 
			
		||||
from .modeling_error import ModelingError
 | 
			
		||||
from .modeling_outcome import ModelingOutcome
 | 
			
		||||
from .modeling_outcomes import ModelingOutcomes
 | 
			
		||||
from .new_address import NewAddress
 | 
			
		||||
from .o_auth2_client_info import OAuth2ClientInfo
 | 
			
		||||
from .o_auth2_grant_type import OAuth2GrantType
 | 
			
		||||
@ -86,6 +88,8 @@ from .payment_method_type import PaymentMethodType
 | 
			
		||||
from .physics_constant import PhysicsConstant
 | 
			
		||||
from .physics_constant_name import PhysicsConstantName
 | 
			
		||||
from .plugins_info import PluginsInfo
 | 
			
		||||
from .point2d import Point2d
 | 
			
		||||
from .point3d import Point3d
 | 
			
		||||
from .point_e_metadata import PointEMetadata
 | 
			
		||||
from .pong import Pong
 | 
			
		||||
from .registry_service_config import RegistryServiceConfig
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,7 @@ import attr
 | 
			
		||||
from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.method import Method
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
S = TypeVar("S", bound="ApiCallWithPrice")
 | 
			
		||||
@ -147,7 +148,12 @@ class ApiCallWithPrice:
 | 
			
		||||
 | 
			
		||||
        endpoint = d.pop("endpoint", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        ip_address = d.pop("ip_address", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -183,7 +189,12 @@ class ApiCallWithPrice:
 | 
			
		||||
 | 
			
		||||
        stripe_invoice_item_id = d.pop("stripe_invoice_item_id", UNSET)
 | 
			
		||||
 | 
			
		||||
        token = d.pop("token", UNSET)
 | 
			
		||||
        _token = d.pop("token", UNSET)
 | 
			
		||||
        token: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_token, Unset):
 | 
			
		||||
            token = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            token = Uuid(_token)
 | 
			
		||||
 | 
			
		||||
        _updated_at = d.pop("updated_at", UNSET)
 | 
			
		||||
        updated_at: Union[Unset, datetime.datetime]
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
import attr
 | 
			
		||||
from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
G = TypeVar("G", bound="ApiToken")
 | 
			
		||||
@ -68,7 +69,12 @@ class ApiToken:
 | 
			
		||||
 | 
			
		||||
        is_valid = d.pop("is_valid", UNSET)
 | 
			
		||||
 | 
			
		||||
        token = d.pop("token", UNSET)
 | 
			
		||||
        _token = d.pop("token", UNSET)
 | 
			
		||||
        token: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_token, Unset):
 | 
			
		||||
            token = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            token = Uuid(_token)
 | 
			
		||||
 | 
			
		||||
        _updated_at = d.pop("updated_at", UNSET)
 | 
			
		||||
        updated_at: Union[Unset, datetime.datetime]
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.async_api_call_type import AsyncApiCallType
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Z = TypeVar("Z", bound="AsyncApiCall")
 | 
			
		||||
@ -103,7 +104,12 @@ class AsyncApiCall:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
        output = d.pop("output", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_export_format import FileExportFormat
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="FileConversion")
 | 
			
		||||
@ -105,7 +106,12 @@ class FileConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        output = d.pop("output", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -278,7 +284,12 @@ class FileCenterOfMass:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
@ -441,7 +452,12 @@ class FileMass:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        mass = d.pop("mass", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -605,7 +621,12 @@ class FileVolume:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
@ -772,7 +793,12 @@ class FileDensity:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        material_mass = d.pop("material_mass", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -934,7 +960,12 @@ class FileSurfaceArea:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
import attr
 | 
			
		||||
from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="CustomerBalance")
 | 
			
		||||
@ -72,7 +73,12 @@ class CustomerBalance:
 | 
			
		||||
        else:
 | 
			
		||||
            created_at = isoparse(_created_at)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        monthly_credits_remaining = d.pop("monthly_credits_remaining", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,128 +0,0 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union, cast
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.drawing_cmd_id import DrawingCmdId
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
J = TypeVar("J", bound="DrawCircle")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class DrawCircle:
 | 
			
		||||
    center: Union[Unset, List[float]] = UNSET
 | 
			
		||||
    radius: Union[Unset, float] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        center: Union[Unset, List[float]] = UNSET
 | 
			
		||||
        if not isinstance(self.center, Unset):
 | 
			
		||||
            center = self.center
 | 
			
		||||
        radius = self.radius
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if center is not UNSET:
 | 
			
		||||
            field_dict["center"] = center
 | 
			
		||||
        if radius is not UNSET:
 | 
			
		||||
            field_dict["radius"] = radius
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        center = cast(List[float], d.pop("center", UNSET))
 | 
			
		||||
 | 
			
		||||
        radius = d.pop("radius", UNSET)
 | 
			
		||||
 | 
			
		||||
        draw_circle = cls(
 | 
			
		||||
            center=center,
 | 
			
		||||
            radius=radius,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        draw_circle.additional_properties = d
 | 
			
		||||
        return draw_circle
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
V = TypeVar("V", bound="Extrude")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Extrude:
 | 
			
		||||
    distance: Union[Unset, float] = UNSET
 | 
			
		||||
    sketch: Union[Unset, DrawingCmdId] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        distance = self.distance
 | 
			
		||||
        if not isinstance(self.sketch, Unset):
 | 
			
		||||
            sketch = self.sketch
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if distance is not UNSET:
 | 
			
		||||
            field_dict["distance"] = distance
 | 
			
		||||
        if sketch is not UNSET:
 | 
			
		||||
            field_dict["sketch"] = sketch
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        distance = d.pop("distance", UNSET)
 | 
			
		||||
 | 
			
		||||
        _sketch = d.pop("sketch", UNSET)
 | 
			
		||||
        sketch: Union[Unset, DrawingCmdId]
 | 
			
		||||
        if isinstance(_sketch, Unset):
 | 
			
		||||
            sketch = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            sketch = DrawingCmdId(_sketch)
 | 
			
		||||
 | 
			
		||||
        extrude = cls(
 | 
			
		||||
            distance=distance,
 | 
			
		||||
            sketch=sketch,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        extrude.additional_properties = d
 | 
			
		||||
        return extrude
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DrawingCmd = Union[DrawCircle, Extrude]
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
M = TypeVar("M", bound="EmailAuthenticationForm")
 | 
			
		||||
J = TypeVar("J", bound="EmailAuthenticationForm")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -31,7 +31,7 @@ class EmailAuthenticationForm:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M:
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        callback_url = d.pop("callback_url", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ from ..models.environment import Environment
 | 
			
		||||
from ..models.file_system_metadata import FileSystemMetadata
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
B = TypeVar("B", bound="EngineMetadata")
 | 
			
		||||
V = TypeVar("V", bound="EngineMetadata")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -57,7 +57,7 @@ class EngineMetadata:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B:
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        async_jobs_running = d.pop("async_jobs_running", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,11 @@ from enum import Enum
 | 
			
		||||
class Environment(str, Enum):
 | 
			
		||||
    """The environment the server is running in."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    """# The development environment. This is for running locally. """  # noqa: E501
 | 
			
		||||
    DEVELOPMENT = "DEVELOPMENT"
 | 
			
		||||
    """# The preview environment. This is when PRs are created and a service is deployed for testing. """  # noqa: E501
 | 
			
		||||
    PREVIEW = "PREVIEW"
 | 
			
		||||
    """# The production environment. """  # noqa: E501
 | 
			
		||||
    PRODUCTION = "PRODUCTION"
 | 
			
		||||
 | 
			
		||||
    def __str__(self) -> str:
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
S = TypeVar("S", bound="Error")
 | 
			
		||||
L = TypeVar("L", bound="Error")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -35,7 +35,7 @@ class Error:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        error_code = d.pop("error_code", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ from ..models.docker_system_info import DockerSystemInfo
 | 
			
		||||
from ..models.environment import Environment
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
A = TypeVar("A", bound="ExecutorMetadata")
 | 
			
		||||
E = TypeVar("E", bound="ExecutorMetadata")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -41,7 +41,7 @@ class ExecutorMetadata:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[A], src_dict: Dict[str, Any]) -> A:
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _docker_info = d.pop("docker_info", UNSET)
 | 
			
		||||
        docker_info: Union[Unset, DockerSystemInfo]
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="ExtendedUser")
 | 
			
		||||
Y = TypeVar("Y", bound="ExtendedUser")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -97,7 +97,7 @@ class ExtendedUser:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        company = d.pop("company", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="ExtendedUserResultsPage")
 | 
			
		||||
H = TypeVar("H", bound="ExtendedUserResultsPage")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -37,7 +37,7 @@ class ExtendedUserResultsPage:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        from ..models.extended_user import ExtendedUser
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										69
									
								
								kittycad/models/extrude.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								kittycad/models/extrude.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.modeling_cmd_id import ModelingCmdId
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
T = TypeVar("T", bound="Extrude")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Extrude:
 | 
			
		||||
    """Command for extruding a solid."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    distance: Union[Unset, float] = UNSET
 | 
			
		||||
    target: Union[Unset, ModelingCmdId] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        distance = self.distance
 | 
			
		||||
        if not isinstance(self.target, Unset):
 | 
			
		||||
            target = self.target
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if distance is not UNSET:
 | 
			
		||||
            field_dict["distance"] = distance
 | 
			
		||||
        if target is not UNSET:
 | 
			
		||||
            field_dict["target"] = target
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        distance = d.pop("distance", UNSET)
 | 
			
		||||
 | 
			
		||||
        _target = d.pop("target", UNSET)
 | 
			
		||||
        target: Union[Unset, ModelingCmdId]
 | 
			
		||||
        if isinstance(_target, Unset):
 | 
			
		||||
            target = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            target = ModelingCmdId(_target)
 | 
			
		||||
 | 
			
		||||
        extrude = cls(
 | 
			
		||||
            distance=distance,
 | 
			
		||||
            target=target,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        extrude.additional_properties = d
 | 
			
		||||
        return extrude
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
G = TypeVar("G", bound="FileCenterOfMass")
 | 
			
		||||
M = TypeVar("M", bound="FileCenterOfMass")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -79,7 +80,7 @@ class FileCenterOfMass:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G:
 | 
			
		||||
    def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        center_of_mass = cast(List[float], d.pop("center_of_mass", UNSET))
 | 
			
		||||
 | 
			
		||||
@ -99,7 +100,12 @@ class FileCenterOfMass:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
 | 
			
		||||
@ -7,9 +7,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_export_format import FileExportFormat
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
J = TypeVar("J", bound="FileConversion")
 | 
			
		||||
B = TypeVar("B", bound="FileConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -83,7 +84,7 @@ class FileConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
    def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -101,7 +102,12 @@ class FileConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        output = d.pop("output", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
R = TypeVar("R", bound="FileDensity")
 | 
			
		||||
S = TypeVar("S", bound="FileDensity")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -81,7 +82,7 @@ class FileDensity:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R:
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -101,7 +102,12 @@ class FileDensity:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        material_mass = d.pop("material_mass", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
L = TypeVar("L", bound="FileMass")
 | 
			
		||||
A = TypeVar("A", bound="FileMass")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -81,7 +82,7 @@ class FileMass:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
    def from_dict(cls: Type[A], src_dict: Dict[str, Any]) -> A:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -99,7 +100,12 @@ class FileMass:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        mass = d.pop("mass", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="FileSurfaceArea")
 | 
			
		||||
H = TypeVar("H", bound="FileSurfaceArea")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -77,7 +78,7 @@ class FileSurfaceArea:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -95,7 +96,12 @@ class FileSurfaceArea:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="FileSystemMetadata")
 | 
			
		||||
E = TypeVar("E", bound="FileSystemMetadata")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -29,7 +29,7 @@ class FileSystemMetadata:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        ok = d.pop("ok", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.file_import_format import FileImportFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
K = TypeVar("K", bound="FileVolume")
 | 
			
		||||
G = TypeVar("G", bound="FileVolume")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -77,7 +78,7 @@ class FileVolume:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
    def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -95,7 +96,12 @@ class FileVolume:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _src_format = d.pop("src_format", UNSET)
 | 
			
		||||
        src_format: Union[Unset, FileImportFormat]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
V = TypeVar("V", bound="Gateway")
 | 
			
		||||
J = TypeVar("J", bound="Gateway")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -43,7 +43,7 @@ class Gateway:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        auth_timeout = d.pop("auth_timeout", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ from ..models.currency import Currency
 | 
			
		||||
from ..models.invoice_status import InvoiceStatus
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="Invoice")
 | 
			
		||||
L = TypeVar("L", bound="Invoice")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -133,7 +133,7 @@ class Invoice:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        amount_due = d.pop("amount_due", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ import attr
 | 
			
		||||
from ..models.currency import Currency
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
P = TypeVar("P", bound="InvoiceLineItem")
 | 
			
		||||
Y = TypeVar("Y", bound="InvoiceLineItem")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -49,7 +49,7 @@ class InvoiceLineItem:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        amount = d.pop("amount", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ from ..models.jetstream_stats import JetstreamStats
 | 
			
		||||
from ..models.meta_cluster_info import MetaClusterInfo
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
C = TypeVar("C", bound="Jetstream")
 | 
			
		||||
H = TypeVar("H", bound="Jetstream")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -41,7 +41,7 @@ class Jetstream:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _config = d.pop("config", UNSET)
 | 
			
		||||
        config: Union[Unset, JetstreamConfig]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
U = TypeVar("U", bound="JetstreamApiStats")
 | 
			
		||||
K = TypeVar("K", bound="JetstreamApiStats")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -35,7 +35,7 @@ class JetstreamApiStats:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U:
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        errors = d.pop("errors", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
S = TypeVar("S", bound="JetstreamConfig")
 | 
			
		||||
V = TypeVar("V", bound="JetstreamConfig")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -39,7 +39,7 @@ class JetstreamConfig:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        domain = d.pop("domain", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ import attr
 | 
			
		||||
from ..models.jetstream_api_stats import JetstreamApiStats
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
K = TypeVar("K", bound="JetstreamStats")
 | 
			
		||||
R = TypeVar("R", bound="JetstreamStats")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -53,7 +53,7 @@ class JetstreamStats:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
    def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        accounts = d.pop("accounts", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Q = TypeVar("Q", bound="LeafNode")
 | 
			
		||||
N = TypeVar("N", bound="LeafNode")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -39,7 +39,7 @@ class LeafNode:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q:
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        auth_timeout = d.pop("auth_timeout", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										75
									
								
								kittycad/models/line3d.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								kittycad/models/line3d.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.point3d import Point3d
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
P = TypeVar("P", bound="Line3d")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Line3d:
 | 
			
		||||
    """Command for adding a line."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    from_: Union[Unset, Point3d] = UNSET
 | 
			
		||||
    to: Union[Unset, Point3d] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        if not isinstance(self.from_, Unset):
 | 
			
		||||
            from_ = self.from_
 | 
			
		||||
        if not isinstance(self.to, Unset):
 | 
			
		||||
            to = self.to
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if from_ is not UNSET:
 | 
			
		||||
            field_dict["from"] = from_
 | 
			
		||||
        if to is not UNSET:
 | 
			
		||||
            field_dict["to"] = to
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _from_ = d.pop("from", UNSET)
 | 
			
		||||
        from_: Union[Unset, Point3d]
 | 
			
		||||
        if isinstance(_from_, Unset):
 | 
			
		||||
            from_ = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            from_ = Point3d(_from_)
 | 
			
		||||
 | 
			
		||||
        _to = d.pop("to", UNSET)
 | 
			
		||||
        to: Union[Unset, Point3d]
 | 
			
		||||
        if isinstance(_to, Unset):
 | 
			
		||||
            to = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            to = Point3d(_to)
 | 
			
		||||
 | 
			
		||||
        line3d = cls(
 | 
			
		||||
            from_=from_,
 | 
			
		||||
            to=to,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        line3d.additional_properties = d
 | 
			
		||||
        return line3d
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="Mesh")
 | 
			
		||||
C = TypeVar("C", bound="Mesh")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -25,7 +25,7 @@ class Mesh:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        mesh = d.pop("mesh", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="MetaClusterInfo")
 | 
			
		||||
U = TypeVar("U", bound="MetaClusterInfo")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -35,7 +35,7 @@ class MetaClusterInfo:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        cluster_size = d.pop("cluster_size", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ from ..models.file_system_metadata import FileSystemMetadata
 | 
			
		||||
from ..models.point_e_metadata import PointEMetadata
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="Metadata")
 | 
			
		||||
S = TypeVar("S", bound="Metadata")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -71,7 +71,7 @@ class Metadata:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _cache = d.pop("cache", UNSET)
 | 
			
		||||
        cache: Union[Unset, CacheMetadata]
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										68
									
								
								kittycad/models/modeling_cmd.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								kittycad/models/modeling_cmd.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,68 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.point2d import Point2d
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
from .extrude import Extrude
 | 
			
		||||
from .line3d import Line3d
 | 
			
		||||
 | 
			
		||||
AddLine = Line3d
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
K = TypeVar("K", bound="SelectionClick")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class SelectionClick:
 | 
			
		||||
    at: Union[Unset, Point2d] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        if not isinstance(self.at, Unset):
 | 
			
		||||
            at = self.at
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if at is not UNSET:
 | 
			
		||||
            field_dict["at"] = at
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _at = d.pop("at", UNSET)
 | 
			
		||||
        at: Union[Unset, Point2d]
 | 
			
		||||
        if isinstance(_at, Unset):
 | 
			
		||||
            at = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            at = Point2d(_at)
 | 
			
		||||
 | 
			
		||||
        selection_click = cls(
 | 
			
		||||
            at=at,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        selection_click.additional_properties = d
 | 
			
		||||
        return selection_click
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ModelingCmd = Union[AddLine, Extrude, SelectionClick]
 | 
			
		||||
@ -1,3 +1,3 @@
 | 
			
		||||
class DrawingCmdId(str):
 | 
			
		||||
class ModelingCmdId(str):
 | 
			
		||||
    def __str__(self) -> str:
 | 
			
		||||
        return self
 | 
			
		||||
@ -2,19 +2,19 @@ from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.drawing_cmd import DrawingCmd
 | 
			
		||||
from ..models.drawing_cmd_id import DrawingCmdId
 | 
			
		||||
from ..models.modeling_cmd import ModelingCmd
 | 
			
		||||
from ..models.modeling_cmd_id import ModelingCmdId
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
L = TypeVar("L", bound="DrawingCmdReq")
 | 
			
		||||
Q = TypeVar("Q", bound="ModelingCmdReq")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class DrawingCmdReq:
 | 
			
		||||
    """A graphics command submitted to the KittyCAD engine via the Drawing API."""  # noqa: E501
 | 
			
		||||
class ModelingCmdReq:
 | 
			
		||||
    """A graphics command submitted to the KittyCAD engine via the Modeling API."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    cmd: Union[Unset, DrawingCmd] = UNSET
 | 
			
		||||
    cmd_id: Union[Unset, DrawingCmdId] = UNSET
 | 
			
		||||
    cmd: Union[Unset, ModelingCmd] = UNSET
 | 
			
		||||
    cmd_id: Union[Unset, ModelingCmdId] = UNSET
 | 
			
		||||
    file_id: Union[Unset, str] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
@ -39,32 +39,32 @@ class DrawingCmdReq:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
    def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _cmd = d.pop("cmd", UNSET)
 | 
			
		||||
        cmd: Union[Unset, DrawingCmd]
 | 
			
		||||
        cmd: Union[Unset, ModelingCmd]
 | 
			
		||||
        if isinstance(_cmd, Unset):
 | 
			
		||||
            cmd = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            cmd = _cmd  # type: ignore[arg-type]
 | 
			
		||||
 | 
			
		||||
        _cmd_id = d.pop("cmd_id", UNSET)
 | 
			
		||||
        cmd_id: Union[Unset, DrawingCmdId]
 | 
			
		||||
        cmd_id: Union[Unset, ModelingCmdId]
 | 
			
		||||
        if isinstance(_cmd_id, Unset):
 | 
			
		||||
            cmd_id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            cmd_id = DrawingCmdId(_cmd_id)
 | 
			
		||||
            cmd_id = ModelingCmdId(_cmd_id)
 | 
			
		||||
 | 
			
		||||
        file_id = d.pop("file_id", UNSET)
 | 
			
		||||
 | 
			
		||||
        drawing_cmd_req = cls(
 | 
			
		||||
        modeling_cmd_req = cls(
 | 
			
		||||
            cmd=cmd,
 | 
			
		||||
            cmd_id=cmd_id,
 | 
			
		||||
            file_id=file_id,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        drawing_cmd_req.additional_properties = d
 | 
			
		||||
        return drawing_cmd_req
 | 
			
		||||
        modeling_cmd_req.additional_properties = d
 | 
			
		||||
        return modeling_cmd_req
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
@ -4,12 +4,12 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="DrawingCmdReqBatch")
 | 
			
		||||
F = TypeVar("F", bound="ModelingCmdReqBatch")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class DrawingCmdReqBatch:
 | 
			
		||||
    """A batch set of graphics commands submitted to the KittyCAD engine via the Drawing API."""  # noqa: E501
 | 
			
		||||
class ModelingCmdReqBatch:
 | 
			
		||||
    """A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    cmds: Union[Unset, Any] = UNSET
 | 
			
		||||
    file_id: Union[Unset, str] = UNSET
 | 
			
		||||
@ -31,18 +31,18 @@ class DrawingCmdReqBatch:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        cmds = d.pop("cmds", UNSET)
 | 
			
		||||
        file_id = d.pop("file_id", UNSET)
 | 
			
		||||
 | 
			
		||||
        drawing_cmd_req_batch = cls(
 | 
			
		||||
        modeling_cmd_req_batch = cls(
 | 
			
		||||
            cmds=cmds,
 | 
			
		||||
            file_id=file_id,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        drawing_cmd_req_batch.additional_properties = d
 | 
			
		||||
        return drawing_cmd_req_batch
 | 
			
		||||
        modeling_cmd_req_batch.additional_properties = d
 | 
			
		||||
        return modeling_cmd_req_batch
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
@ -4,12 +4,12 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="DrawingError")
 | 
			
		||||
H = TypeVar("H", bound="ModelingError")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class DrawingError:
 | 
			
		||||
    """Why a command submitted to the Drawing API failed."""  # noqa: E501
 | 
			
		||||
class ModelingError:
 | 
			
		||||
    """Why a command submitted to the Modeling API failed."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    error_code: Union[Unset, str] = UNSET
 | 
			
		||||
    external_message: Union[Unset, str] = UNSET
 | 
			
		||||
@ -39,7 +39,7 @@ class DrawingError:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        error_code = d.pop("error_code", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -49,15 +49,15 @@ class DrawingError:
 | 
			
		||||
 | 
			
		||||
        status_code = d.pop("status_code", UNSET)
 | 
			
		||||
 | 
			
		||||
        drawing_error = cls(
 | 
			
		||||
        modeling_error = cls(
 | 
			
		||||
            error_code=error_code,
 | 
			
		||||
            external_message=external_message,
 | 
			
		||||
            internal_message=internal_message,
 | 
			
		||||
            status_code=status_code,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        drawing_error.additional_properties = d
 | 
			
		||||
        return drawing_error
 | 
			
		||||
        modeling_error.additional_properties = d
 | 
			
		||||
        return modeling_error
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
@ -2,22 +2,22 @@ from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..models.drawing_cmd_id import DrawingCmdId
 | 
			
		||||
from ..models.modeling_cmd_id import ModelingCmdId
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
from .drawing_error import DrawingError
 | 
			
		||||
from .modeling_error import ModelingError
 | 
			
		||||
 | 
			
		||||
Success = Any
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Error = DrawingError
 | 
			
		||||
Error = ModelingError
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="Cancelled")
 | 
			
		||||
N = TypeVar("N", bound="Cancelled")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Cancelled:
 | 
			
		||||
    what_failed: Union[Unset, DrawingCmdId] = UNSET
 | 
			
		||||
    what_failed: Union[Unset, ModelingCmdId] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
@ -34,14 +34,14 @@ class Cancelled:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _what_failed = d.pop("what_failed", UNSET)
 | 
			
		||||
        what_failed: Union[Unset, DrawingCmdId]
 | 
			
		||||
        what_failed: Union[Unset, ModelingCmdId]
 | 
			
		||||
        if isinstance(_what_failed, Unset):
 | 
			
		||||
            what_failed = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            what_failed = DrawingCmdId(_what_failed)
 | 
			
		||||
            what_failed = ModelingCmdId(_what_failed)
 | 
			
		||||
 | 
			
		||||
        cancelled = cls(
 | 
			
		||||
            what_failed=what_failed,
 | 
			
		||||
@ -67,4 +67,4 @@ class Cancelled:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DrawingOutcome = Union[Success, Error, Cancelled]
 | 
			
		||||
ModelingOutcome = Union[Success, Error, Cancelled]
 | 
			
		||||
@ -4,12 +4,12 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
T = TypeVar("T", bound="DrawingOutcomes")
 | 
			
		||||
H = TypeVar("H", bound="ModelingOutcomes")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class DrawingOutcomes:
 | 
			
		||||
    """The result from a batch of drawing commands."""  # noqa: E501
 | 
			
		||||
class ModelingOutcomes:
 | 
			
		||||
    """The result from a batch of modeling commands."""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    outcomes: Union[Unset, Any] = UNSET
 | 
			
		||||
 | 
			
		||||
@ -27,16 +27,16 @@ class DrawingOutcomes:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        outcomes = d.pop("outcomes", UNSET)
 | 
			
		||||
 | 
			
		||||
        drawing_outcomes = cls(
 | 
			
		||||
        modeling_outcomes = cls(
 | 
			
		||||
            outcomes=outcomes,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        drawing_outcomes.additional_properties = d
 | 
			
		||||
        return drawing_outcomes
 | 
			
		||||
        modeling_outcomes.additional_properties = d
 | 
			
		||||
        return modeling_outcomes
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
@ -5,7 +5,7 @@ import attr
 | 
			
		||||
from ..models.country_code import CountryCode
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="NewAddress")
 | 
			
		||||
B = TypeVar("B", bound="NewAddress")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -53,7 +53,7 @@ class NewAddress:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        city = d.pop("city", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,31 +4,31 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
B = TypeVar("B", bound="Onboarding")
 | 
			
		||||
P = TypeVar("P", bound="Onboarding")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Onboarding:
 | 
			
		||||
    """Onboarding details"""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    first_call_from_their_machine_date: Union[Unset, str] = UNSET
 | 
			
		||||
    first_call_from__their_machine_date: Union[Unset, str] = UNSET
 | 
			
		||||
    first_litterbox_execute_date: Union[Unset, str] = UNSET
 | 
			
		||||
    first_token_date: Union[Unset, str] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        first_call_from_their_machine_date = self.first_call_from_their_machine_date
 | 
			
		||||
        first_call_from__their_machine_date = self.first_call_from__their_machine_date
 | 
			
		||||
        first_litterbox_execute_date = self.first_litterbox_execute_date
 | 
			
		||||
        first_token_date = self.first_token_date
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if first_call_from_their_machine_date is not UNSET:
 | 
			
		||||
        if first_call_from__their_machine_date is not UNSET:
 | 
			
		||||
            field_dict[
 | 
			
		||||
                "first_call_from_their_machine_date"
 | 
			
		||||
            ] = first_call_from_their_machine_date
 | 
			
		||||
            ] = first_call_from__their_machine_date
 | 
			
		||||
        if first_litterbox_execute_date is not UNSET:
 | 
			
		||||
            field_dict["first_litterbox_execute_date"] = first_litterbox_execute_date
 | 
			
		||||
        if first_token_date is not UNSET:
 | 
			
		||||
@ -37,9 +37,9 @@ class Onboarding:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B:
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        first_call_from_their_machine_date = d.pop(
 | 
			
		||||
        first_call_from__their_machine_date = d.pop(
 | 
			
		||||
            "first_call_from_their_machine_date", UNSET
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
@ -48,7 +48,7 @@ class Onboarding:
 | 
			
		||||
        first_token_date = d.pop("first_token_date", UNSET)
 | 
			
		||||
 | 
			
		||||
        onboarding = cls(
 | 
			
		||||
            first_call_from_their_machine_date=first_call_from_their_machine_date,
 | 
			
		||||
            first_call_from__their_machine_date=first_call_from__their_machine_date,
 | 
			
		||||
            first_litterbox_execute_date=first_litterbox_execute_date,
 | 
			
		||||
            first_token_date=first_token_date,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
P = TypeVar("P", bound="OutputFile")
 | 
			
		||||
J = TypeVar("J", bound="OutputFile")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -31,7 +31,7 @@ class OutputFile:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        contents = d.pop("contents", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
J = TypeVar("J", bound="PaymentIntent")
 | 
			
		||||
T = TypeVar("T", bound="PaymentIntent")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -27,7 +27,7 @@ class PaymentIntent:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        client_secret = d.pop("client_secret", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ from ..models.card_details import CardDetails
 | 
			
		||||
from ..models.payment_method_type import PaymentMethodType
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
T = TypeVar("T", bound="PaymentMethod")
 | 
			
		||||
V = TypeVar("V", bound="PaymentMethod")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -57,7 +57,7 @@ class PaymentMethod:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _billing_info = d.pop("billing_info", UNSET)
 | 
			
		||||
        billing_info: Union[Unset, BillingInfo]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
V = TypeVar("V", bound="PaymentMethodCardChecks")
 | 
			
		||||
C = TypeVar("C", bound="PaymentMethodCardChecks")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -35,7 +35,7 @@ class PaymentMethodCardChecks:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        address_line1_check = d.pop("address_line1_check", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.physics_constant_name import PhysicsConstantName
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
C = TypeVar("C", bound="PhysicsConstant")
 | 
			
		||||
R = TypeVar("R", bound="PhysicsConstant")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -77,7 +78,7 @@ class PhysicsConstant:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
    def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -102,7 +103,12 @@ class PhysicsConstant:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        _started_at = d.pop("started_at", UNSET)
 | 
			
		||||
        started_at: Union[Unset, datetime.datetime]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
R = TypeVar("R", bound="PluginsInfo")
 | 
			
		||||
C = TypeVar("C", bound="PluginsInfo")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -49,7 +49,7 @@ class PluginsInfo:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R:
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        authorization = cast(List[str], d.pop("authorization", UNSET))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										62
									
								
								kittycad/models/point2d.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								kittycad/models/point2d.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="Point2d")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Point2d:
 | 
			
		||||
    """A point in 2D space"""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    x: Union[Unset, float] = UNSET
 | 
			
		||||
    y: Union[Unset, float] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        x = self.x
 | 
			
		||||
        y = self.y
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if x is not UNSET:
 | 
			
		||||
            field_dict["x"] = x
 | 
			
		||||
        if y is not UNSET:
 | 
			
		||||
            field_dict["y"] = y
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        x = d.pop("x", UNSET)
 | 
			
		||||
 | 
			
		||||
        y = d.pop("y", UNSET)
 | 
			
		||||
 | 
			
		||||
        point2d = cls(
 | 
			
		||||
            x=x,
 | 
			
		||||
            y=y,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        point2d.additional_properties = d
 | 
			
		||||
        return point2d
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
							
								
								
									
										69
									
								
								kittycad/models/point3d.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								kittycad/models/point3d.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
			
		||||
from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
 | 
			
		||||
import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
M = TypeVar("M", bound="Point3d")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
class Point3d:
 | 
			
		||||
    """A point in 3D space"""  # noqa: E501
 | 
			
		||||
 | 
			
		||||
    x: Union[Unset, float] = UNSET
 | 
			
		||||
    y: Union[Unset, float] = UNSET
 | 
			
		||||
    z: Union[Unset, float] = UNSET
 | 
			
		||||
 | 
			
		||||
    additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 | 
			
		||||
 | 
			
		||||
    def to_dict(self) -> Dict[str, Any]:
 | 
			
		||||
        x = self.x
 | 
			
		||||
        y = self.y
 | 
			
		||||
        z = self.z
 | 
			
		||||
 | 
			
		||||
        field_dict: Dict[str, Any] = {}
 | 
			
		||||
        field_dict.update(self.additional_properties)
 | 
			
		||||
        field_dict.update({})
 | 
			
		||||
        if x is not UNSET:
 | 
			
		||||
            field_dict["x"] = x
 | 
			
		||||
        if y is not UNSET:
 | 
			
		||||
            field_dict["y"] = y
 | 
			
		||||
        if z is not UNSET:
 | 
			
		||||
            field_dict["z"] = z
 | 
			
		||||
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        x = d.pop("x", UNSET)
 | 
			
		||||
 | 
			
		||||
        y = d.pop("y", UNSET)
 | 
			
		||||
 | 
			
		||||
        z = d.pop("z", UNSET)
 | 
			
		||||
 | 
			
		||||
        point3d = cls(
 | 
			
		||||
            x=x,
 | 
			
		||||
            y=y,
 | 
			
		||||
            z=z,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        point3d.additional_properties = d
 | 
			
		||||
        return point3d
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def additional_keys(self) -> List[str]:
 | 
			
		||||
        return list(self.additional_properties.keys())
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, key: str) -> Any:
 | 
			
		||||
        return self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key: str, value: Any) -> None:
 | 
			
		||||
        self.additional_properties[key] = value
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key: str) -> None:
 | 
			
		||||
        del self.additional_properties[key]
 | 
			
		||||
 | 
			
		||||
    def __contains__(self, key: str) -> bool:
 | 
			
		||||
        return key in self.additional_properties
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
C = TypeVar("C", bound="PointEMetadata")
 | 
			
		||||
S = TypeVar("S", bound="PointEMetadata")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -29,7 +29,7 @@ class PointEMetadata:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C:
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        ok = d.pop("ok", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="Pong")
 | 
			
		||||
L = TypeVar("L", bound="Pong")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -27,7 +27,7 @@ class Pong:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        message = d.pop("message", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
M = TypeVar("M", bound="RegistryServiceConfig")
 | 
			
		||||
T = TypeVar("T", bound="RegistryServiceConfig")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -59,7 +59,7 @@ class RegistryServiceConfig:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M:
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        allow_nondistributable_artifacts_cid_rs = cast(
 | 
			
		||||
            List[str], d.pop("allow_nondistributable_artifacts_cid_rs", UNSET)
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
S = TypeVar("S", bound="Runtime")
 | 
			
		||||
E = TypeVar("E", bound="Runtime")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -33,7 +33,7 @@ class Runtime:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S:
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        path = d.pop("path", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,9 +4,10 @@ from typing import Any, Dict, List, Type, TypeVar, Union
 | 
			
		||||
import attr
 | 
			
		||||
from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
L = TypeVar("L", bound="Session")
 | 
			
		||||
D = TypeVar("D", bound="Session")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -57,7 +58,7 @@ class Session:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
    def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _created_at = d.pop("created_at", UNSET)
 | 
			
		||||
        created_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -75,7 +76,12 @@ class Session:
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
 | 
			
		||||
        session_token = d.pop("session_token", UNSET)
 | 
			
		||||
        _session_token = d.pop("session_token", UNSET)
 | 
			
		||||
        session_token: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_session_token, Unset):
 | 
			
		||||
            session_token = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            session_token = Uuid(_session_token)
 | 
			
		||||
 | 
			
		||||
        _updated_at = d.pop("updated_at", UNSET)
 | 
			
		||||
        updated_at: Union[Unset, datetime.datetime]
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
T = TypeVar("T", bound="SystemInfoDefaultAddressPools")
 | 
			
		||||
Y = TypeVar("Y", bound="SystemInfoDefaultAddressPools")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -29,7 +29,7 @@ class SystemInfoDefaultAddressPools:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        base = d.pop("base", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_acceleration_format import UnitAccelerationFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="UnitAccelerationConversion")
 | 
			
		||||
Y = TypeVar("Y", bound="UnitAccelerationConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitAccelerationConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitAccelerationConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_angle_format import UnitAngleFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
D = TypeVar("D", bound="UnitAngleConversion")
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitAngleConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_angular_velocity_format import UnitAngularVelocityFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="UnitAngularVelocityConversion")
 | 
			
		||||
F = TypeVar("F", bound="UnitAngularVelocityConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitAngularVelocityConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitAngularVelocityConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_area_format import UnitAreaFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="UnitAreaConversion")
 | 
			
		||||
Z = TypeVar("Z", bound="UnitAreaConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitAreaConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
    def from_dict(cls: Type[Z], src_dict: Dict[str, Any]) -> Z:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitAreaConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_charge_format import UnitChargeFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
D = TypeVar("D", bound="UnitChargeConversion")
 | 
			
		||||
G = TypeVar("G", bound="UnitChargeConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitChargeConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D:
 | 
			
		||||
    def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitChargeConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_concentration_format import UnitConcentrationFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="UnitConcentrationConversion")
 | 
			
		||||
L = TypeVar("L", bound="UnitConcentrationConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitConcentrationConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitConcentrationConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_data_format import UnitDataFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Z = TypeVar("Z", bound="UnitDataConversion")
 | 
			
		||||
N = TypeVar("N", bound="UnitDataConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitDataConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Z], src_dict: Dict[str, Any]) -> Z:
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitDataConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_data_transfer_rate_format import UnitDataTransferRateFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
G = TypeVar("G", bound="UnitDataTransferRateConversion")
 | 
			
		||||
N = TypeVar("N", bound="UnitDataTransferRateConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitDataTransferRateConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G:
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitDataTransferRateConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_density_format import UnitDensityFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
L = TypeVar("L", bound="UnitDensityConversion")
 | 
			
		||||
H = TypeVar("H", bound="UnitDensityConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitDensityConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitDensityConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_energy_format import UnitEnergyFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="UnitEnergyConversion")
 | 
			
		||||
V = TypeVar("V", bound="UnitEnergyConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitEnergyConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitEnergyConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_force_format import UnitForceFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="UnitForceConversion")
 | 
			
		||||
E = TypeVar("E", bound="UnitForceConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitForceConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitForceConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_illuminance_format import UnitIlluminanceFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
H = TypeVar("H", bound="UnitIlluminanceConversion")
 | 
			
		||||
T = TypeVar("T", bound="UnitIlluminanceConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitIlluminanceConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitIlluminanceConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_length_format import UnitLengthFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
V = TypeVar("V", bound="UnitLengthConversion")
 | 
			
		||||
Q = TypeVar("Q", bound="UnitLengthConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitLengthConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
    def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitLengthConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_magnetic_field_strength_format import UnitMagneticFieldStrengthFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
E = TypeVar("E", bound="UnitMagneticFieldStrengthConversion")
 | 
			
		||||
F = TypeVar("F", bound="UnitMagneticFieldStrengthConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitMagneticFieldStrengthConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E:
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMagneticFieldStrengthConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_magnetic_flux_format import UnitMagneticFluxFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
T = TypeVar("T", bound="UnitMagneticFluxConversion")
 | 
			
		||||
D = TypeVar("D", bound="UnitMagneticFluxConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitMagneticFluxConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 | 
			
		||||
    def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMagneticFluxConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_mass_format import UnitMassFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Q = TypeVar("Q", bound="UnitMassConversion")
 | 
			
		||||
J = TypeVar("J", bound="UnitMassConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitMassConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q:
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMassConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_metric_power import UnitMetricPower
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="UnitMetricPowerConversion")
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMetricPowerConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_metric_power import UnitMetricPower
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
D = TypeVar("D", bound="UnitMetricPowerCubedConversion")
 | 
			
		||||
V = TypeVar("V", bound="UnitMetricPowerCubedConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitMetricPowerCubedConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D:
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMetricPowerCubedConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_metric_power import UnitMetricPower
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
J = TypeVar("J", bound="UnitMetricPowerSquaredConversion")
 | 
			
		||||
U = TypeVar("U", bound="UnitMetricPowerSquaredConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitMetricPowerSquaredConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J:
 | 
			
		||||
    def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitMetricPowerSquaredConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_power_format import UnitPowerFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="UnitPowerConversion")
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitPowerConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_pressure_format import UnitPressureFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
V = TypeVar("V", bound="UnitPressureConversion")
 | 
			
		||||
Y = TypeVar("Y", bound="UnitPressureConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitPressureConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V:
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitPressureConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_radiation_format import UnitRadiationFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
U = TypeVar("U", bound="UnitRadiationConversion")
 | 
			
		||||
F = TypeVar("F", bound="UnitRadiationConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitRadiationConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U:
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitRadiationConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_radioactivity_format import UnitRadioactivityFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="UnitRadioactivityConversion")
 | 
			
		||||
P = TypeVar("P", bound="UnitRadioactivityConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitRadioactivityConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitRadioactivityConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_solid_angle_format import UnitSolidAngleFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="UnitSolidAngleConversion")
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitSolidAngleConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_temperature_format import UnitTemperatureFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
F = TypeVar("F", bound="UnitTemperatureConversion")
 | 
			
		||||
L = TypeVar("L", bound="UnitTemperatureConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitTemperatureConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F:
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitTemperatureConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_time_format import UnitTimeFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
P = TypeVar("P", bound="UnitTimeConversion")
 | 
			
		||||
K = TypeVar("K", bound="UnitTimeConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitTimeConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P:
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitTimeConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_velocity_format import UnitVelocityFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
Y = TypeVar("Y", bound="UnitVelocityConversion")
 | 
			
		||||
N = TypeVar("N", bound="UnitVelocityConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitVelocityConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y:
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitVelocityConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_voltage_format import UnitVoltageFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
L = TypeVar("L", bound="UnitVoltageConversion")
 | 
			
		||||
H = TypeVar("H", bound="UnitVoltageConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitVoltageConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L:
 | 
			
		||||
    def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitVoltageConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,10 @@ from dateutil.parser import isoparse
 | 
			
		||||
 | 
			
		||||
from ..models.api_call_status import ApiCallStatus
 | 
			
		||||
from ..models.unit_volume_format import UnitVolumeFormat
 | 
			
		||||
from ..models.uuid import Uuid
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
K = TypeVar("K", bound="UnitVolumeConversion")
 | 
			
		||||
A = TypeVar("A", bound="UnitVolumeConversion")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -86,7 +87,7 @@ class UnitVolumeConversion:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K:
 | 
			
		||||
    def from_dict(cls: Type[A], src_dict: Dict[str, Any]) -> A:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        _completed_at = d.pop("completed_at", UNSET)
 | 
			
		||||
        completed_at: Union[Unset, datetime.datetime]
 | 
			
		||||
@ -104,7 +105,12 @@ class UnitVolumeConversion:
 | 
			
		||||
 | 
			
		||||
        error = d.pop("error", UNSET)
 | 
			
		||||
 | 
			
		||||
        id = d.pop("id", UNSET)
 | 
			
		||||
        _id = d.pop("id", UNSET)
 | 
			
		||||
        id: Union[Unset, Uuid]
 | 
			
		||||
        if isinstance(_id, Unset):
 | 
			
		||||
            id = UNSET
 | 
			
		||||
        else:
 | 
			
		||||
            id = Uuid(_id)
 | 
			
		||||
 | 
			
		||||
        input = d.pop("input", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import attr
 | 
			
		||||
 | 
			
		||||
from ..types import UNSET, Unset
 | 
			
		||||
 | 
			
		||||
N = TypeVar("N", bound="UpdateUser")
 | 
			
		||||
R = TypeVar("R", bound="UpdateUser")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attr.s(auto_attribs=True)
 | 
			
		||||
@ -47,7 +47,7 @@ class UpdateUser:
 | 
			
		||||
        return field_dict
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N:
 | 
			
		||||
    def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R:
 | 
			
		||||
        d = src_dict.copy()
 | 
			
		||||
        company = d.pop("company", UNSET)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user