diff --git a/generate/generate.py b/generate/generate.py index a0d932b10..34db87526 100755 --- a/generate/generate.py +++ b/generate/generate.py @@ -292,14 +292,20 @@ def generateTypeAndExamplePython( logging.error("schema: %s", json.dumps(schema, indent=4)) raise Exception("Unknown parameter type") elif "oneOf" in schema and len(schema["oneOf"]) > 0: + one_of = schema["oneOf"][0] # Check if each of these only has a object w 1 property. if isNestedObjectOneOf(schema): - properties = schema["oneOf"][0]["properties"] - for prop in properties: + if "properties" in one_of: + properties = one_of["properties"] + for prop in properties: + return generateTypeAndExamplePython( + prop, properties[prop], data, camel_to_snake(name) + ) + break + elif "type" in one_of and one_of["type"] == "string": return generateTypeAndExamplePython( - prop, properties[prop], data, camel_to_snake(name) + name, one_of, data, camel_to_snake(name) ) - break return generateTypeAndExamplePython(name, schema["oneOf"][0], data, None) elif "allOf" in schema and len(schema["allOf"]) == 1: @@ -1249,6 +1255,21 @@ def generateEnumType( logging.info("generating type: ", name, " at: ", path) f = open(path, "w") + code = generateEnumTypeCode(name, schema, type_name, additional_docs) + f.write(code) + + # Close the file. + f.close() + + +def generateEnumTypeCode( + name: str, + schema: dict, + type_name: str, + additional_docs: List[str], +) -> str: + f = io.StringIO() + f.write("from enum import Enum\n") f.write("\n") f.write("class " + name + "(str, Enum):\n") @@ -1276,9 +1297,13 @@ def generateEnumType( f.write("\tdef __str__(self) -> str:\n") f.write("\t\treturn str(self.value)\n") + value = f.getvalue() + # Close the file. f.close() + return value + def generateOneOfType(path: str, name: str, schema: dict, data: dict): logging.info("generating type: ", name, " at: ", path) @@ -1316,35 +1341,43 @@ def generateOneOfType(path: str, name: str, schema: dict, data: dict): # We want to write each of the nested objects. for one_of in schema["oneOf"]: # Get the nested object. - for prop_name in one_of["properties"]: - nested_object = one_of["properties"][prop_name] - if nested_object == {}: - f.write("from typing import Any\n") - f.write(prop_name + " = Any\n") - f.write("\n") - all_options.append(prop_name) - elif "$ref" in nested_object: - ref = nested_object["$ref"] - ref_name = ref[ref.rfind("/") + 1 :] - f.write( - "from ." - + camel_to_snake(ref_name) - + " import " - + ref_name - + "\n" - ) - f.write("\n") - if prop_name != ref_name: - f.write(prop_name + " = " + ref_name + "\n") + if "properties" in one_of: + for prop_name in one_of["properties"]: + nested_object = one_of["properties"][prop_name] + if nested_object == {}: + f.write("from typing import Any\n") + f.write(prop_name + " = Any\n") f.write("\n") - all_options.append(prop_name) - else: - object_code = generateObjectTypeCode( - prop_name, nested_object, "object", data - ) - f.write(object_code) - f.write("\n") - all_options.append(prop_name) + all_options.append(prop_name) + elif "$ref" in nested_object: + ref = nested_object["$ref"] + ref_name = ref[ref.rfind("/") + 1 :] + f.write( + "from ." + + camel_to_snake(ref_name) + + " import " + + ref_name + + "\n" + ) + f.write("\n") + if prop_name != ref_name: + f.write(prop_name + " = " + ref_name + "\n") + f.write("\n") + all_options.append(prop_name) + else: + object_code = generateObjectTypeCode( + prop_name, nested_object, "object", data + ) + f.write(object_code) + f.write("\n") + all_options.append(prop_name) + elif "type" in one_of and one_of["type"] == "string": + enum_code = generateEnumTypeCode( + one_of["enum"][0], one_of, "string", [] + ) + f.write(enum_code) + f.write("\n") + all_options.append(one_of["enum"][0]) # Check if each one_of has the same enum of one. tag = None @@ -2290,6 +2323,10 @@ def isNestedObjectOneOf(schema: dict) -> bool: else: is_nested_object = False break + elif ( + one_of["type"] == "string" and "enum" in one_of and len(one_of["enum"]) == 1 + ): + is_nested_object = True else: is_nested_object = False break diff --git a/generate/run.sh b/generate/run.sh index 4d95c25b1..ec565a0b4 100755 --- a/generate/run.sh +++ b/generate/run.sh @@ -18,7 +18,7 @@ poetry run isort . poetry run black . generate/generate.py docs/conf.py kittycad/client_test.py kittycad/examples_test.py poetry run ruff check --fix . # We ignore errors here but we should eventually fix them. -poetry run mypy . +poetry run mypy . || true # Run the tests. diff --git a/kittycad.py.patch.json b/kittycad.py.patch.json index e48fddce7..f93a9bc5b 100644 --- a/kittycad.py.patch.json +++ b/kittycad.py.patch.json @@ -1 +1 @@ -[{"op": "add", "path": "/components/schemas/UnitTorque/enum", "value": ["newton_metres", "pound_foot"]}, {"op": "add", "path": "/components/schemas/UnitTorque/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitVolume/enum", "value": ["cubic_centimetres", "cubic_feet", "cubic_inches", "cubic_metres", "cubic_yards", "cups", "drams", "drops", "fluid_ounces", "fluid_ounces_uk", "gallons", "gallons_uk", "litres", "millilitres", "pints", "pints_uk", "quarts", "tablespoons", "teaspoons"]}, {"op": "add", "path": "/components/schemas/UnitVolume/type", "value": "string"}, {"op": "add", "path": "/components/schemas/FileExportFormat/enum", "value": ["dae", "dxf", "fbx", "fbxb", "obj", "ply", "step", "stl"]}, {"op": "add", "path": "/components/schemas/FileExportFormat/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CreatedAtSortMode/enum", "value": ["created-at-ascending", "created-at-descending"]}, {"op": "add", "path": "/components/schemas/CreatedAtSortMode/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginAuthType/enum", "value": ["none", "user_http", "service_http", "oauth"]}, {"op": "add", "path": "/components/schemas/AiPluginAuthType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AccountProvider/enum", "value": ["google", "github"]}, {"op": "add", "path": "/components/schemas/AccountProvider/type", "value": "string"}, {"op": "add", "path": "/components/schemas/FileImportFormat/enum", "value": ["dae", "dxf", "fbx", "obj_zip", "obj", "ply", "step", "stl"]}, {"op": "add", "path": "/components/schemas/FileImportFormat/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitForce/enum", "value": ["dynes", "kiloponds", "micronewtons", "millinewtons", "newtons", "poundals", "pounds"]}, {"op": "add", "path": "/components/schemas/UnitForce/type", "value": "string"}, {"op": "add", "path": "/components/schemas/ApiCallStatus/enum", "value": ["Queued", "Uploaded", "In Progress", "Completed", "Failed"]}, {"op": "add", "path": "/components/schemas/ApiCallStatus/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitAngle/enum", "value": ["degrees", "radians"]}, {"op": "add", "path": "/components/schemas/UnitAngle/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitPressure/enum", "value": ["atmospheres", "bars", "hectopascals", "kilopascals", "millibars", "pascals", "psi"]}, {"op": "add", "path": "/components/schemas/UnitPressure/type", "value": "string"}, {"op": "add", "path": "/components/schemas/PhysicsConstantName/enum", "value": ["pi", "c", "speed_of_light", "G", "newtonian_gravitation", "h", "planck_const", "mu_0", "vacuum_permeability", "E_0", "vacuum_permitivity", "Z_0", "vacuum_impedance", "k_e", "coulomb_const", "e", "elementary_charge", "m_e", "electron_mass", "m_p", "proton_mass", "mu_B", "bohr_magneton", "NA", "avogadro_num", "R", "molar_gas_const", "K_B", "boltzmann_const", "F", "faraday_const", "sigma", "stefan_boltzmann_const"]}, {"op": "add", "path": "/components/schemas/PhysicsConstantName/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitCurrent/enum", "value": ["amperes", "microamperes", "milliamperes", "nanoamperes"]}, {"op": "add", "path": "/components/schemas/UnitCurrent/type", "value": "string"}, {"op": "add", "path": "/components/schemas/InvoiceStatus/enum", "value": ["deleted", "draft", "open", "paid", "uncollectible", "void"]}, {"op": "add", "path": "/components/schemas/InvoiceStatus/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitFrequency/enum", "value": ["gigahertz", "hertz", "kilohertz", "megahertz", "microhertz", "millihertz", "nanohertz", "terahertz"]}, {"op": "add", "path": "/components/schemas/UnitFrequency/type", "value": "string"}, {"op": "add", "path": "/components/schemas/OAuth2GrantType/enum", "value": ["urn:ietf:params:oauth:grant-type:device_code"]}, {"op": "add", "path": "/components/schemas/OAuth2GrantType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitPower/enum", "value": ["btu_per_minute", "horsepower", "kilowatts", "metric_horsepower", "microwatts", "milliwatts", "watts"]}, {"op": "add", "path": "/components/schemas/UnitPower/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitLength/enum", "value": ["centimetres", "decimetres", "feet", "furlongs", "hectometres", "inches", "kilometres", "metres", "micrometres", "miles", "millimetres", "nanometres", "yards"]}, {"op": "add", "path": "/components/schemas/UnitLength/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitMass/enum", "value": ["carats", "grains", "grams", "kilograms", "long_tons", "metric_tons", "micrograms", "milligrams", "ounces", "pennyweights", "pounds", "short_tons", "stones", "troy_ounces", "troy_pounds"]}, {"op": "add", "path": "/components/schemas/UnitMass/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitArea/enum", "value": ["acres", "hectares", "square_centimetres", "square_decimetres", "square_feet", "square_hectometres", "square_inches", "square_kilometres", "square_metres", "square_micrometres", "square_miles", "square_millimetres", "square_nanometres", "square_yards"]}, {"op": "add", "path": "/components/schemas/UnitArea/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginHttpAuthType/enum", "value": ["basic", "bearer"]}, {"op": "add", "path": "/components/schemas/AiPluginHttpAuthType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Method/enum", "value": ["OPTIONS", "GET", "POST", "PUT", "DELETE", "HEAD", "TRACE", "CONNECT", "PATCH", "EXTENSION"]}, {"op": "add", "path": "/components/schemas/Method/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginApiType/enum", "value": ["openapi"]}, {"op": "add", "path": "/components/schemas/AiPluginApiType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Environment/enum", "value": ["DEVELOPMENT", "PREVIEW", "PRODUCTION"]}, {"op": "add", "path": "/components/schemas/Environment/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitEnergy/enum", "value": ["btu", "electronvolts", "joules", "kilocalories", "kilowatt_hours", "watt_hours"]}, {"op": "add", "path": "/components/schemas/UnitEnergy/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitTemperature/enum", "value": ["celsius", "fahrenheit", "kelvin", "rankine"]}, {"op": "add", "path": "/components/schemas/UnitTemperature/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CountryCode/enum", "value": ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "CV", "KH", "CM", "CA", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"]}, {"op": "add", "path": "/components/schemas/CountryCode/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Currency/enum", "value": ["aed", "afn", "all", "amd", "ang", "aoa", "ars", "aud", "awg", "azn", "bam", "bbd", "bdt", "bgn", "bif", "bmd", "bnd", "bob", "brl", "bsd", "bwp", "bzd", "cad", "cdf", "chf", "clp", "cny", "cop", "crc", "cve", "czk", "djf", "dkk", "dop", "dzd", "eek", "egp", "etb", "eur", "fjd", "fkp", "gbp", "gel", "gip", "gmd", "gnf", "gtq", "gyd", "hkd", "hnl", "hrk", "htg", "huf", "idr", "ils", "inr", "isk", "jmd", "jpy", "kes", "kgs", "khr", "kmf", "krw", "kyd", "kzt", "lak", "lbp", "lkr", "lrd", "lsl", "ltl", "lvl", "mad", "mdl", "mga", "mkd", "mnt", "mop", "mro", "mur", "mvr", "mwk", "mxn", "myr", "mzn", "nad", "ngn", "nio", "nok", "npr", "nzd", "pab", "pen", "pgk", "php", "pkr", "pln", "pyg", "qar", "ron", "rsd", "rub", "rwf", "sar", "sbd", "scr", "sek", "sgd", "shp", "sll", "sos", "srd", "std", "svc", "szl", "thb", "tjs", "top", "try", "ttd", "twd", "tzs", "uah", "ugx", "usd", "uyu", "uzs", "vef", "vnd", "vuv", "wst", "xaf", "xcd", "xof", "xpf", "yer", "zar", "zmw"]}, {"op": "add", "path": "/components/schemas/Currency/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AsyncApiCallType/enum", "value": ["FileConversion", "FileVolume", "FileCenterOfMass", "FileMass", "FileDensity", "FileSurfaceArea"]}, {"op": "add", "path": "/components/schemas/AsyncApiCallType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/ApiCallQueryGroupBy/enum", "value": ["email", "method", "endpoint", "user_id", "origin", "ip_address"]}, {"op": "add", "path": "/components/schemas/ApiCallQueryGroupBy/type", "value": "string"}, {"op": "add", "path": "/components/schemas/PaymentMethodType/enum", "value": ["card"]}, {"op": "add", "path": "/components/schemas/PaymentMethodType/type", "value": "string"}, {"op": "add", "path": "/info/x-python", "value": {"client": "# Create a client with your token.\nfrom kittycad import Client\n\nclient = Client(token=\"$TOKEN\")\n\n# - OR -\n\n# Create a new client with your token parsed from the environment variable:\n# `KITTYCAD_API_TOKEN`.\nfrom kittycad import ClientFromEnv\n\nclient = ClientFromEnv()\n\n# NOTE: The python library additionally implements asyncio, however all the code samples we\n# show below use the sync functions for ease of use and understanding.\n# Check out the library docs at:\n# https://python.api.docs.kittycad.io/_autosummary/kittycad.api.html#module-kittycad.api\n# for more details.", "install": "pip install kittycad"}}, {"op": "add", "path": "/paths/~1ws~1executor~1term/get/x-python", "value": {"example": "from kittycad.api.executor import create_executor_term\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_create_executor_term():\n # Create our client.\n client = ClientFromEnv()\n\n create_executor_term.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_executor_term.html"}}, {"op": "add", "path": "/paths/~1ai~1image-to-3d~1{input_format}~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.ai import create_image_to_3d\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Mesh\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.image_type import ImageType\nfrom kittycad.types import Response\n\n\ndef example_create_image_to_3d():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Mesh, Error]] = create_image_to_3d.sync(\n client=client,\n input_format=ImageType.PNG,\n output_format=FileExportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Mesh = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_image_to_3d.html"}}, {"op": "add", "path": "/paths/~1users-extended/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import list_users_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ExtendedUserResultsPage, Error]\n ] = list_users_extended.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUserResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users_extended.html"}}, {"op": "add", "path": "/paths/~1modeling~1cmd/post/x-python", "value": {"example": "from kittycad.api.modeling import cmd\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models.line3d import Line3d\nfrom kittycad.models.modeling_cmd_id import ModelingCmdId\nfrom kittycad.models.modeling_cmd_req import ModelingCmdReq\nfrom kittycad.models.point3d import Point3d\nfrom kittycad.types import Response\n\n\ndef example_cmd():\n # Create our client.\n client = ClientFromEnv()\n\n cmd.sync(\n client=client,\n body=ModelingCmdReq(\n cmd=Line3d(\n from_=Point3d(\n x=3.14,\n y=3.14,\n z=3.14,\n ),\n to=Point3d(\n x=3.14,\n y=3.14,\n z=3.14,\n ),\n ),\n cmd_id=ModelingCmdId(\"\"),\n file_id=\"\",\n ),\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.cmd.html"}}, {"op": "add", "path": "/paths/~1user~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import user_list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_user_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = user_list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.user_list_api_calls.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1area~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_area_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAreaConversion\nfrom kittycad.models.unit_area import UnitArea\nfrom kittycad.types import Response\n\n\ndef example_get_area_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAreaConversion, Error]\n ] = get_area_unit_conversion.sync(\n client=client,\n input_unit=UnitArea.ACRES,\n output_unit=UnitArea.ACRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAreaConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_area_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1auth~1email~1callback/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import auth_email_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_auth_email_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = auth_email_callback.sync(\n client=client,\n email=\"\",\n token=\"\",\n callback_url=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email_callback.html"}}, {"op": "add", "path": "/paths/~1user~1session~1{token}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_session_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Session\nfrom kittycad.types import Response\n\n\ndef example_get_session_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Session, Error]] = get_session_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Session = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_session_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1onboarding/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_onboarding_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Onboarding\nfrom kittycad.types import Response\n\n\ndef example_get_user_onboarding_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Onboarding, Error]] = get_user_onboarding_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Onboarding = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_onboarding_self.html"}}, {"op": "add", "path": "/paths/~1modeling~1cmd_batch/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.modeling import cmd_batch\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ModelingOutcomes\nfrom kittycad.models.line3d import Line3d\nfrom kittycad.models.modeling_cmd_id import ModelingCmdId\nfrom kittycad.models.modeling_cmd_req import ModelingCmdReq\nfrom kittycad.models.modeling_cmd_req_batch import ModelingCmdReqBatch\nfrom kittycad.models.point3d import Point3d\nfrom kittycad.types import Response\n\n\ndef example_cmd_batch():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ModelingOutcomes, Error]] = cmd_batch.sync(\n client=client,\n body=ModelingCmdReqBatch(\n cmds={\n \"\": ModelingCmdReq(\n cmd=Line3d(\n from_=Point3d(\n x=3.14,\n y=3.14,\n z=3.14,\n ),\n to=Point3d(\n x=3.14,\n y=3.14,\n z=3.14,\n ),\n ),\n cmd_id=ModelingCmdId(\"\"),\n file_id=\"\",\n )\n },\n file_id=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ModelingOutcomes = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.cmd_batch.html"}}, {"op": "add", "path": "/paths/~1users~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user.html"}}, {"op": "add", "path": "/paths/~1openai~1openapi.json/get/x-python", "value": {"example": "from kittycad.api.meta import get_openai_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_openai_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_openai_schema.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_openai_schema.html"}}, {"op": "add", "path": "/paths/~1file~1volume/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_volume\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileVolume\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_volume():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileVolume, Error]] = create_file_volume.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileVolume = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_volume.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1angle~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_angle_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAngleConversion\nfrom kittycad.models.unit_angle import UnitAngle\nfrom kittycad.types import Response\n\n\ndef example_get_angle_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAngleConversion, Error]\n ] = get_angle_unit_conversion.sync(\n client=client,\n input_unit=UnitAngle.DEGREES,\n output_unit=UnitAngle.DEGREES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAngleConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_angle_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1user/put/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import update_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.models.update_user import UpdateUser\nfrom kittycad.types import Response\n\n\ndef example_update_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = update_user_self.sync(\n client=client,\n body=UpdateUser(\n company=\"\",\n discord=\"\",\n first_name=\"\",\n github=\"\",\n last_name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.update_user_self.html"}}, {"op": "add", "path": "/paths/~1user/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self.html"}}, {"op": "add", "path": "/paths/~1user/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import delete_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.delete_user_self.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1methods/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import list_payment_methods_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentMethod\nfrom kittycad.types import Response\n\n\ndef example_list_payment_methods_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[PaymentMethod], Error]\n ] = list_payment_methods_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[PaymentMethod] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_payment_methods_for_user.html"}}, {"op": "add", "path": "/paths/~1file~1density/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_density\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileDensity\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_density():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileDensity, Error]] = create_file_density.sync(\n client=client,\n material_mass=3.14,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileDensity = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_density.html"}}, {"op": "add", "path": "/paths/~1file~1surface-area/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_surface_area\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileSurfaceArea\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_surface_area():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileSurfaceArea, Error]\n ] = create_file_surface_area.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileSurfaceArea = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_surface_area.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1temperature~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_temperature_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTemperatureConversion\nfrom kittycad.models.unit_temperature import UnitTemperature\nfrom kittycad.types import Response\n\n\ndef example_get_temperature_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTemperatureConversion, Error]\n ] = get_temperature_unit_conversion.sync(\n client=client,\n input_unit=UnitTemperature.CELSIUS,\n output_unit=UnitTemperature.CELSIUS,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTemperatureConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_temperature_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1async~1operations~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_async_operation\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import (\n Error,\n FileCenterOfMass,\n FileConversion,\n FileDensity,\n FileMass,\n FileSurfaceArea,\n FileVolume,\n)\nfrom kittycad.types import Response\n\n\ndef example_get_async_operation():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n Error,\n ]\n ] = get_async_operation.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n ] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_async_operation.html"}}, {"op": "add", "path": "/paths/~1file~1mass/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileMass, Error]] = create_file_mass.sync(\n client=client,\n material_density=3.14,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileMass = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_mass.html"}}, {"op": "add", "path": "/paths/~1users-extended~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_extended.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_extended.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1power~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_power_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPowerConversion\nfrom kittycad.models.unit_power import UnitPower\nfrom kittycad.types import Response\n\n\ndef example_get_power_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPowerConversion, Error]\n ] = get_power_unit_conversion.sync(\n client=client,\n input_unit=UnitPower.BTU_PER_MINUTE,\n output_unit=UnitPower.BTU_PER_MINUTE,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPowerConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_power_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1_meta~1info/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import get_metadata\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Metadata\nfrom kittycad.types import Response\n\n\ndef example_get_metadata():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Metadata, Error]] = get_metadata.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Metadata = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_metadata.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1mass~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_mass_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitMassConversion\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_get_mass_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitMassConversion, Error]\n ] = get_mass_unit_conversion.sync(\n client=client,\n input_unit=UnitMass.CARATS,\n output_unit=UnitMass.CARATS,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitMassConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_mass_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1methods~1{id}/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import delete_payment_method_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_method_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_method_for_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_method_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens~1{token}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import get_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiToken, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiToken, Error]] = get_api_token_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.get_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens~1{token}/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import delete_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_api_token_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.delete_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-calls~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call_for_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1front-hash/get/x-python", "value": {"example": "from kittycad.api.users import get_user_front_hash_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_user_front_hash_self():\n # Create our client.\n client = ClientFromEnv()\n\n get_user_front_hash_self.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_front_hash_self.html"}}, {"op": "add", "path": "/paths/~1logout/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import logout\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_logout():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = logout.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.logout.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1invoices/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import list_invoices_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Invoice\nfrom kittycad.types import Response\n\n\ndef example_list_invoices_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[List[Invoice], Error]] = list_invoices_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[Invoice] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_invoices_for_user.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1torque~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_torque_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTorqueConversion\nfrom kittycad.models.unit_torque import UnitTorque\nfrom kittycad.types import Response\n\n\ndef example_get_torque_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTorqueConversion, Error]\n ] = get_torque_unit_conversion.sync(\n client=client,\n input_unit=UnitTorque.NEWTON_METRES,\n output_unit=UnitTorque.NEWTON_METRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTorqueConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_torque_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1volume~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_volume_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitVolumeConversion\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_get_volume_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitVolumeConversion, Error]\n ] = get_volume_unit_conversion.sync(\n client=client,\n input_unit=UnitVolume.CUBIC_CENTIMETRES,\n output_unit=UnitVolume.CUBIC_CENTIMETRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitVolumeConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_volume_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1webhook/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_webhook\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_webhook():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_webhook.sync(\n client=client,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_webhook.html"}}, {"op": "add", "path": "/paths/~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls.html"}}, {"op": "add", "path": "/paths/~1user~1extended/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_self_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_self_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_self_extended.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self_extended.html"}}, {"op": "add", "path": "/paths/~1api-call-metrics/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call_metrics\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallQueryGroup, Error\nfrom kittycad.models.api_call_query_group_by import ApiCallQueryGroupBy\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_metrics():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[ApiCallQueryGroup], Error]\n ] = get_api_call_metrics.sync(\n client=client,\n group_by=ApiCallQueryGroupBy.EMAIL,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[ApiCallQueryGroup] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_metrics.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1tax/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import validate_customer_tax_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_validate_customer_tax_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = validate_customer_tax_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.validate_customer_tax_information_for_user.html"}}, {"op": "add", "path": "/paths/~1ws~1modeling~1commands/get/x-python", "value": {"example": "from kittycad.api.modeling import modeling_commands_ws\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_modeling_commands_ws():\n # Create our client.\n client = ClientFromEnv()\n\n modeling_commands_ws.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.modeling_commands_ws.html"}}, {"op": "add", "path": "/paths/~1async~1operations/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_async_operations\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AsyncApiCallResultsPage, Error\nfrom kittycad.models.api_call_status import ApiCallStatus\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_async_operations():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AsyncApiCallResultsPage, Error]\n ] = list_async_operations.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n status=ApiCallStatus.QUEUED,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AsyncApiCallResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_async_operations.html"}}, {"op": "add", "path": "/paths/~1api-calls~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call.html"}}, {"op": "add", "path": "/paths/~1file~1center-of-mass/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_center_of_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileCenterOfMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_center_of_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileCenterOfMass, Error]\n ] = create_file_center_of_mass.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileCenterOfMass = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_center_of_mass.html"}}, {"op": "add", "path": "/paths/~1constant~1physics~1{constant}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.constant import get_physics_constant\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PhysicsConstant\nfrom kittycad.models.physics_constant_name import PhysicsConstantName\nfrom kittycad.types import Response\n\n\ndef example_get_physics_constant():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[PhysicsConstant, Error]] = get_physics_constant.sync(\n client=client,\n constant=PhysicsConstantName.PI,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: PhysicsConstant = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.constant.get_physics_constant.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1energy~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_energy_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitEnergyConversion\nfrom kittycad.models.unit_energy import UnitEnergy\nfrom kittycad.types import Response\n\n\ndef example_get_energy_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitEnergyConversion, Error]\n ] = get_energy_unit_conversion.sync(\n client=client,\n input_unit=UnitEnergy.BTU,\n output_unit=UnitEnergy.BTU,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitEnergyConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_energy_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1file~1conversion~1{src_format}~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import (\n create_file_conversion,\n create_file_conversion_with_base64_helper,\n)\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileConversion\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_conversion_with_base64_helper():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileConversion, Error]\n ] = create_file_conversion_with_base64_helper.sync(\n client=client,\n output_format=FileExportFormat.DAE,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_conversion_with_base64_helper.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1force~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_force_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitForceConversion\nfrom kittycad.models.unit_force import UnitForce\nfrom kittycad.types import Response\n\n\ndef example_get_force_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitForceConversion, Error]\n ] = get_force_unit_conversion.sync(\n client=client,\n input_unit=UnitForce.DYNES,\n output_unit=UnitForce.DYNES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitForceConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_force_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1pressure~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_pressure_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPressureConversion\nfrom kittycad.models.unit_pressure import UnitPressure\nfrom kittycad.types import Response\n\n\ndef example_get_pressure_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPressureConversion, Error]\n ] = get_pressure_unit_conversion.sync(\n client=client,\n input_unit=UnitPressure.ATMOSPHERES,\n output_unit=UnitPressure.ATMOSPHERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPressureConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_pressure_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import list_api_tokens_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiTokenResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_tokens_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiTokenResultsPage, Error]\n ] = list_api_tokens_for_user.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiTokenResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.list_api_tokens_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import create_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiToken, Error\nfrom kittycad.types import Response\n\n\ndef example_create_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiToken, Error]] = create_api_token_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.create_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1.well-known~1ai-plugin.json/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import get_ai_plugin_manifest\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPluginManifest, Error\nfrom kittycad.types import Response\n\n\ndef example_get_ai_plugin_manifest():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AiPluginManifest, Error]\n ] = get_ai_plugin_manifest.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPluginManifest = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_ai_plugin_manifest.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1consent/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_consent\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AppClientInfo, Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_consent():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AppClientInfo, Error]] = apps_github_consent.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AppClientInfo = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_consent.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1intent/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import create_payment_intent_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentIntent\nfrom kittycad.types import Response\n\n\ndef example_create_payment_intent_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[PaymentIntent, Error]\n ] = create_payment_intent_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: PaymentIntent = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_intent_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1balance/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import get_payment_balance_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CustomerBalance, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_balance_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[CustomerBalance, Error]\n ] = get_payment_balance_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CustomerBalance = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_balance_for_user.html"}}, {"op": "add", "path": "/paths/~1users~1{id}~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_api_calls_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls_for_user.sync(\n client=client,\n id=\"\",\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls_for_user.html"}}, {"op": "add", "path": "/paths/~1/get/x-python", "value": {"example": "from kittycad.api.meta import get_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_schema.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_schema.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1callback/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_callback.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_callback.html"}}, {"op": "add", "path": "/paths/~1ping/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import ping\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Pong\nfrom kittycad.types import Response\n\n\ndef example_ping():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Pong, Error]] = ping.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Pong = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.ping.html"}}, {"op": "add", "path": "/paths/~1file~1execute~1{lang}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.executor import create_file_execution\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CodeOutput, Error\nfrom kittycad.models.code_language import CodeLanguage\nfrom kittycad.types import Response\n\n\ndef example_create_file_execution():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[CodeOutput, Error]] = create_file_execution.sync(\n client=client,\n lang=CodeLanguage.GO,\n output=None, # Optional[str]\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CodeOutput = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_file_execution.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1current~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_current_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitCurrentConversion\nfrom kittycad.models.unit_current import UnitCurrent\nfrom kittycad.types import Response\n\n\ndef example_get_current_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitCurrentConversion, Error]\n ] = get_current_unit_conversion.sync(\n client=client,\n input_unit=UnitCurrent.AMPERES,\n output_unit=UnitCurrent.AMPERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitCurrentConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_current_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1user~1payment/put/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import update_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_update_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = update_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.update_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import delete_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import create_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_create_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = create_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import get_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = get_payment_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1ai~1text-to-3d~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.ai import create_text_to_3d\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Mesh\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_3d():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Mesh, Error]] = create_text_to_3d.sync(\n client=client,\n output_format=FileExportFormat.DAE,\n prompt=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Mesh = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_3d.html"}}, {"op": "add", "path": "/paths/~1users/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import list_users\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[UserResultsPage, Error]] = list_users.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UserResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1frequency~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_frequency_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitFrequencyConversion\nfrom kittycad.models.unit_frequency import UnitFrequency\nfrom kittycad.types import Response\n\n\ndef example_get_frequency_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitFrequencyConversion, Error]\n ] = get_frequency_unit_conversion.sync(\n client=client,\n input_unit=UnitFrequency.GIGAHERTZ,\n output_unit=UnitFrequency.GIGAHERTZ,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitFrequencyConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_frequency_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1auth~1email/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import auth_email\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, VerificationToken\nfrom kittycad.models.email_authentication_form import EmailAuthenticationForm\nfrom kittycad.types import Response\n\n\ndef example_auth_email():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[VerificationToken, Error]] = auth_email.sync(\n client=client,\n body=EmailAuthenticationForm(\n email=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: VerificationToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1length~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_length_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitLengthConversion\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_get_length_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitLengthConversion, Error]\n ] = get_length_unit_conversion.sync(\n client=client,\n input_unit=UnitLength.CENTIMETRES,\n output_unit=UnitLength.CENTIMETRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitLengthConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_length_unit_conversion.html"}}] \ No newline at end of file +[{"op": "add", "path": "/paths/~1user~1session~1{token}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_session_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Session\nfrom kittycad.types import Response\n\n\ndef example_get_session_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Session, Error]] = get_session_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Session = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_session_for_user.html"}}, {"op": "add", "path": "/paths/~1users-extended/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import list_users_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ExtendedUserResultsPage, Error]\n ] = list_users_extended.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUserResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users_extended.html"}}, {"op": "add", "path": "/paths/~1ai~1text-to-3d~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.ai import create_text_to_3d\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Mesh\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_3d():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Mesh, Error]] = create_text_to_3d.sync(\n client=client,\n output_format=FileExportFormat.DAE,\n prompt=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Mesh = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_3d.html"}}, {"op": "add", "path": "/paths/~1users~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1invoices/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import list_invoices_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Invoice\nfrom kittycad.types import Response\n\n\ndef example_list_invoices_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[List[Invoice], Error]] = list_invoices_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[Invoice] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_invoices_for_user.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1frequency~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_frequency_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitFrequencyConversion\nfrom kittycad.models.unit_frequency import UnitFrequency\nfrom kittycad.types import Response\n\n\ndef example_get_frequency_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitFrequencyConversion, Error]\n ] = get_frequency_unit_conversion.sync(\n client=client,\n input_unit=UnitFrequency.GIGAHERTZ,\n output_unit=UnitFrequency.GIGAHERTZ,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitFrequencyConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_frequency_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1_meta~1info/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import get_metadata\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Metadata\nfrom kittycad.types import Response\n\n\ndef example_get_metadata():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Metadata, Error]] = get_metadata.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Metadata = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_metadata.html"}}, {"op": "add", "path": "/paths/~1ws~1executor~1term/get/x-python", "value": {"example": "from kittycad.api.executor import create_executor_term\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_create_executor_term():\n # Create our client.\n client = ClientFromEnv()\n\n create_executor_term.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_executor_term.html"}}, {"op": "add", "path": "/paths/~1modeling~1cmd/post/x-python", "value": {"example": "from kittycad.api.modeling import cmd\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models.modeling_cmd import ModelingCmd\nfrom kittycad.models.modeling_cmd_id import ModelingCmdId\nfrom kittycad.models.modeling_cmd_req import ModelingCmdReq\nfrom kittycad.types import Response\n\n\ndef example_cmd():\n # Create our client.\n client = ClientFromEnv()\n\n cmd.sync(\n client=client,\n body=ModelingCmdReq(\n cmd=ModelingCmd.START_PATH,\n cmd_id=ModelingCmdId(\"\"),\n file_id=\"\",\n ),\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.cmd.html"}}, {"op": "add", "path": "/paths/~1ai~1image-to-3d~1{input_format}~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.ai import create_image_to_3d\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Mesh\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.image_type import ImageType\nfrom kittycad.types import Response\n\n\ndef example_create_image_to_3d():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Mesh, Error]] = create_image_to_3d.sync(\n client=client,\n input_format=ImageType.PNG,\n output_format=FileExportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Mesh = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_image_to_3d.html"}}, {"op": "add", "path": "/paths/~1auth~1email/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import auth_email\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, VerificationToken\nfrom kittycad.models.email_authentication_form import EmailAuthenticationForm\nfrom kittycad.types import Response\n\n\ndef example_auth_email():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[VerificationToken, Error]] = auth_email.sync(\n client=client,\n body=EmailAuthenticationForm(\n email=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: VerificationToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email.html"}}, {"op": "add", "path": "/paths/~1file~1density/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_density\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileDensity\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_density():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileDensity, Error]] = create_file_density.sync(\n client=client,\n material_mass=3.14,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileDensity = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_density.html"}}, {"op": "add", "path": "/paths/~1constant~1physics~1{constant}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.constant import get_physics_constant\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PhysicsConstant\nfrom kittycad.models.physics_constant_name import PhysicsConstantName\nfrom kittycad.types import Response\n\n\ndef example_get_physics_constant():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[PhysicsConstant, Error]] = get_physics_constant.sync(\n client=client,\n constant=PhysicsConstantName.PI,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: PhysicsConstant = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.constant.get_physics_constant.html"}}, {"op": "add", "path": "/paths/~1user~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import user_list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_user_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = user_list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.user_list_api_calls.html"}}, {"op": "add", "path": "/paths/~1modeling~1cmd_batch/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.modeling import cmd_batch\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ModelingOutcomes\nfrom kittycad.models.modeling_cmd import ModelingCmd\nfrom kittycad.models.modeling_cmd_id import ModelingCmdId\nfrom kittycad.models.modeling_cmd_req import ModelingCmdReq\nfrom kittycad.models.modeling_cmd_req_batch import ModelingCmdReqBatch\nfrom kittycad.types import Response\n\n\ndef example_cmd_batch():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ModelingOutcomes, Error]] = cmd_batch.sync(\n client=client,\n body=ModelingCmdReqBatch(\n cmds={\n \"\": ModelingCmdReq(\n cmd=ModelingCmd.START_PATH,\n cmd_id=ModelingCmdId(\"\"),\n file_id=\"\",\n )\n },\n file_id=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ModelingOutcomes = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.cmd_batch.html"}}, {"op": "add", "path": "/paths/~1users-extended~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_extended.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_extended.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1methods~1{id}/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import delete_payment_method_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_method_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_method_for_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_method_for_user.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1volume~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_volume_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitVolumeConversion\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_get_volume_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitVolumeConversion, Error]\n ] = get_volume_unit_conversion.sync(\n client=client,\n input_unit=UnitVolume.CUBIC_CENTIMETRES,\n output_unit=UnitVolume.CUBIC_CENTIMETRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitVolumeConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_volume_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1user/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import delete_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.delete_user_self.html"}}, {"op": "add", "path": "/paths/~1user/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self.html"}}, {"op": "add", "path": "/paths/~1user/put/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import update_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.models.update_user import UpdateUser\nfrom kittycad.types import Response\n\n\ndef example_update_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = update_user_self.sync(\n client=client,\n body=UpdateUser(\n company=\"\",\n discord=\"\",\n first_name=\"\",\n github=\"\",\n last_name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.update_user_self.html"}}, {"op": "add", "path": "/paths/~1user~1extended/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_self_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_self_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_self_extended.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self_extended.html"}}, {"op": "add", "path": "/paths/~1users/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import list_users\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[UserResultsPage, Error]] = list_users.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UserResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users.html"}}, {"op": "add", "path": "/paths/~1logout/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import logout\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_logout():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = logout.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.logout.html"}}, {"op": "add", "path": "/paths/~1auth~1email~1callback/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.hidden import auth_email_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_auth_email_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = auth_email_callback.sync(\n client=client,\n email=\"\",\n token=\"\",\n callback_url=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email_callback.html"}}, {"op": "add", "path": "/paths/~1/get/x-python", "value": {"example": "from kittycad.api.meta import get_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_schema.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_schema.html"}}, {"op": "add", "path": "/paths/~1file~1conversion~1{src_format}~1{output_format}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import (\n create_file_conversion,\n create_file_conversion_with_base64_helper,\n)\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileConversion\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_conversion_with_base64_helper():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileConversion, Error]\n ] = create_file_conversion_with_base64_helper.sync(\n client=client,\n output_format=FileExportFormat.DAE,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_conversion_with_base64_helper.html"}}, {"op": "add", "path": "/paths/~1openai~1openapi.json/get/x-python", "value": {"example": "from kittycad.api.meta import get_openai_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_openai_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_openai_schema.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_openai_schema.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1balance/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import get_payment_balance_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CustomerBalance, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_balance_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[CustomerBalance, Error]\n ] = get_payment_balance_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CustomerBalance = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_balance_for_user.html"}}, {"op": "add", "path": "/paths/~1ws~1modeling~1commands/get/x-python", "value": {"example": "from kittycad.api.modeling import modeling_commands_ws\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_modeling_commands_ws():\n # Create our client.\n client = ClientFromEnv()\n\n modeling_commands_ws.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.modeling_commands_ws.html"}}, {"op": "add", "path": "/paths/~1.well-known~1ai-plugin.json/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import get_ai_plugin_manifest\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPluginManifest, Error\nfrom kittycad.types import Response\n\n\ndef example_get_ai_plugin_manifest():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AiPluginManifest, Error]\n ] = get_ai_plugin_manifest.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPluginManifest = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_ai_plugin_manifest.html"}}, {"op": "add", "path": "/paths/~1file~1center-of-mass/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_center_of_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileCenterOfMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_center_of_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileCenterOfMass, Error]\n ] = create_file_center_of_mass.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileCenterOfMass = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_center_of_mass.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1methods/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import list_payment_methods_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentMethod\nfrom kittycad.types import Response\n\n\ndef example_list_payment_methods_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[PaymentMethod], Error]\n ] = list_payment_methods_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[PaymentMethod] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_payment_methods_for_user.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1area~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_area_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAreaConversion\nfrom kittycad.models.unit_area import UnitArea\nfrom kittycad.types import Response\n\n\ndef example_get_area_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAreaConversion, Error]\n ] = get_area_unit_conversion.sync(\n client=client,\n input_unit=UnitArea.ACRES,\n output_unit=UnitArea.ACRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAreaConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_area_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1force~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_force_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitForceConversion\nfrom kittycad.models.unit_force import UnitForce\nfrom kittycad.types import Response\n\n\ndef example_get_force_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitForceConversion, Error]\n ] = get_force_unit_conversion.sync(\n client=client,\n input_unit=UnitForce.DYNES,\n output_unit=UnitForce.DYNES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitForceConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_force_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1webhook/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_webhook\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_webhook():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_webhook.sync(\n client=client,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_webhook.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1length~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_length_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitLengthConversion\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_get_length_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitLengthConversion, Error]\n ] = get_length_unit_conversion.sync(\n client=client,\n input_unit=UnitLength.CENTIMETRES,\n output_unit=UnitLength.CENTIMETRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitLengthConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_length_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1pressure~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_pressure_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPressureConversion\nfrom kittycad.models.unit_pressure import UnitPressure\nfrom kittycad.types import Response\n\n\ndef example_get_pressure_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPressureConversion, Error]\n ] = get_pressure_unit_conversion.sync(\n client=client,\n input_unit=UnitPressure.ATMOSPHERES,\n output_unit=UnitPressure.ATMOSPHERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPressureConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_pressure_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1temperature~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_temperature_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTemperatureConversion\nfrom kittycad.models.unit_temperature import UnitTemperature\nfrom kittycad.types import Response\n\n\ndef example_get_temperature_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTemperatureConversion, Error]\n ] = get_temperature_unit_conversion.sync(\n client=client,\n input_unit=UnitTemperature.CELSIUS,\n output_unit=UnitTemperature.CELSIUS,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTemperatureConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_temperature_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1mass~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_mass_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitMassConversion\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_get_mass_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitMassConversion, Error]\n ] = get_mass_unit_conversion.sync(\n client=client,\n input_unit=UnitMass.CARATS,\n output_unit=UnitMass.CARATS,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitMassConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_mass_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1async~1operations/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_async_operations\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AsyncApiCallResultsPage, Error\nfrom kittycad.models.api_call_status import ApiCallStatus\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_async_operations():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AsyncApiCallResultsPage, Error]\n ] = list_async_operations.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n status=ApiCallStatus.QUEUED,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AsyncApiCallResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_async_operations.html"}}, {"op": "add", "path": "/paths/~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1tax/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import validate_customer_tax_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_validate_customer_tax_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = validate_customer_tax_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.validate_customer_tax_information_for_user.html"}}, {"op": "add", "path": "/paths/~1file~1volume/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_volume\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileVolume\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_volume():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileVolume, Error]] = create_file_volume.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileVolume = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_volume.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import create_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiToken, Error\nfrom kittycad.types import Response\n\n\ndef example_create_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiToken, Error]] = create_api_token_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.create_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import list_api_tokens_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiTokenResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_tokens_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiTokenResultsPage, Error]\n ] = list_api_tokens_for_user.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiTokenResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.list_api_tokens_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1front-hash/get/x-python", "value": {"example": "from kittycad.api.users import get_user_front_hash_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_user_front_hash_self():\n # Create our client.\n client = ClientFromEnv()\n\n get_user_front_hash_self.sync(\n client=client,\n )\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_front_hash_self.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1energy~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_energy_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitEnergyConversion\nfrom kittycad.models.unit_energy import UnitEnergy\nfrom kittycad.types import Response\n\n\ndef example_get_energy_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitEnergyConversion, Error]\n ] = get_energy_unit_conversion.sync(\n client=client,\n input_unit=UnitEnergy.BTU,\n output_unit=UnitEnergy.BTU,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitEnergyConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_energy_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1current~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_current_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitCurrentConversion\nfrom kittycad.models.unit_current import UnitCurrent\nfrom kittycad.types import Response\n\n\ndef example_get_current_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitCurrentConversion, Error]\n ] = get_current_unit_conversion.sync(\n client=client,\n input_unit=UnitCurrent.AMPERES,\n output_unit=UnitCurrent.AMPERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitCurrentConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_current_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1consent/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_consent\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AppClientInfo, Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_consent():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AppClientInfo, Error]] = apps_github_consent.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AppClientInfo = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_consent.html"}}, {"op": "add", "path": "/paths/~1file~1execute~1{lang}/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.executor import create_file_execution\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CodeOutput, Error\nfrom kittycad.models.code_language import CodeLanguage\nfrom kittycad.types import Response\n\n\ndef example_create_file_execution():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[CodeOutput, Error]] = create_file_execution.sync(\n client=client,\n lang=CodeLanguage.GO,\n output=None, # Optional[str]\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CodeOutput = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_file_execution.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens~1{token}/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import delete_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_api_token_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.delete_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-tokens~1{token}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_tokens import get_api_token_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiToken, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_token_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiToken, Error]] = get_api_token_for_user.sync(\n client=client,\n token=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiToken = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_tokens.get_api_token_for_user.html"}}, {"op": "add", "path": "/paths/~1api-calls~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call.html"}}, {"op": "add", "path": "/paths/~1user~1onboarding/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.users import get_user_onboarding_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Onboarding\nfrom kittycad.types import Response\n\n\ndef example_get_user_onboarding_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Onboarding, Error]] = get_user_onboarding_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Onboarding = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_onboarding_self.html"}}, {"op": "add", "path": "/paths/~1file~1mass/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileMass, Error]] = create_file_mass.sync(\n client=client,\n material_density=3.14,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileMass = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_mass.html"}}, {"op": "add", "path": "/paths/~1apps~1github~1callback/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.apps import apps_github_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_callback.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_callback.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1angle~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_angle_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAngleConversion\nfrom kittycad.models.unit_angle import UnitAngle\nfrom kittycad.types import Response\n\n\ndef example_get_angle_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAngleConversion, Error]\n ] = get_angle_unit_conversion.sync(\n client=client,\n input_unit=UnitAngle.DEGREES,\n output_unit=UnitAngle.DEGREES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAngleConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_angle_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1ping/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.meta import ping\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Pong\nfrom kittycad.types import Response\n\n\ndef example_ping():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Pong, Error]] = ping.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Pong = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.ping.html"}}, {"op": "add", "path": "/paths/~1users~1{id}~1api-calls/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import list_api_calls_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls_for_user.sync(\n client=client,\n id=\"\",\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1api-calls~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call_for_user.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import get_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = get_payment_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/put/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import update_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_update_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = update_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.update_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import create_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_create_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = create_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"\",\n phone=\"\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1user~1payment/delete/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import delete_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_information_for_user.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1torque~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_torque_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTorqueConversion\nfrom kittycad.models.unit_torque import UnitTorque\nfrom kittycad.types import Response\n\n\ndef example_get_torque_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTorqueConversion, Error]\n ] = get_torque_unit_conversion.sync(\n client=client,\n input_unit=UnitTorque.NEWTON_METRES,\n output_unit=UnitTorque.NEWTON_METRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTorqueConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_torque_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1api-call-metrics/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_api_call_metrics\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallQueryGroup, Error\nfrom kittycad.models.api_call_query_group_by import ApiCallQueryGroupBy\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_metrics():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[ApiCallQueryGroup], Error]\n ] = get_api_call_metrics.sync(\n client=client,\n group_by=ApiCallQueryGroupBy.EMAIL,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[ApiCallQueryGroup] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_metrics.html"}}, {"op": "add", "path": "/paths/~1user~1payment~1intent/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.payments import create_payment_intent_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentIntent\nfrom kittycad.types import Response\n\n\ndef example_create_payment_intent_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[PaymentIntent, Error]\n ] = create_payment_intent_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: PaymentIntent = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_intent_for_user.html"}}, {"op": "add", "path": "/paths/~1file~1surface-area/post/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.file import create_file_surface_area\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileSurfaceArea\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_surface_area():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileSurfaceArea, Error]\n ] = create_file_surface_area.sync(\n client=client,\n src_format=FileImportFormat.DAE,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileSurfaceArea = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_surface_area.html"}}, {"op": "add", "path": "/paths/~1unit~1conversion~1power~1{input_unit}~1{output_unit}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.unit import get_power_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPowerConversion\nfrom kittycad.models.unit_power import UnitPower\nfrom kittycad.types import Response\n\n\ndef example_get_power_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPowerConversion, Error]\n ] = get_power_unit_conversion.sync(\n client=client,\n input_unit=UnitPower.BTU_PER_MINUTE,\n output_unit=UnitPower.BTU_PER_MINUTE,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPowerConversion = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_power_unit_conversion.html"}}, {"op": "add", "path": "/paths/~1async~1operations~1{id}/get/x-python", "value": {"example": "from typing import Any, List, Optional, Union\n\nfrom kittycad.api.api_calls import get_async_operation\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import (\n Error,\n FileCenterOfMass,\n FileConversion,\n FileDensity,\n FileMass,\n FileSurfaceArea,\n FileVolume,\n)\nfrom kittycad.types import Response\n\n\ndef example_get_async_operation():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n Error,\n ]\n ] = get_async_operation.sync(\n client=client,\n id=\"\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n ] = result\n print(body)\n", "libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_async_operation.html"}}, {"op": "add", "path": "/components/schemas/ApiCallQueryGroupBy/type", "value": "string"}, {"op": "add", "path": "/components/schemas/ApiCallQueryGroupBy/enum", "value": ["email", "method", "endpoint", "user_id", "origin", "ip_address"]}, {"op": "add", "path": "/components/schemas/UnitTorque/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitTorque/enum", "value": ["newton_metres", "pound_foot"]}, {"op": "add", "path": "/components/schemas/AiPluginAuthType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginAuthType/enum", "value": ["none", "user_http", "service_http", "oauth"]}, {"op": "add", "path": "/components/schemas/UnitEnergy/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitEnergy/enum", "value": ["btu", "electronvolts", "joules", "kilocalories", "kilowatt_hours", "watt_hours"]}, {"op": "add", "path": "/components/schemas/UnitMass/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitMass/enum", "value": ["carats", "grains", "grams", "kilograms", "long_tons", "metric_tons", "micrograms", "milligrams", "ounces", "pennyweights", "pounds", "short_tons", "stones", "troy_ounces", "troy_pounds"]}, {"op": "add", "path": "/components/schemas/AccountProvider/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AccountProvider/enum", "value": ["google", "github"]}, {"op": "add", "path": "/components/schemas/Method/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Method/enum", "value": ["OPTIONS", "GET", "POST", "PUT", "DELETE", "HEAD", "TRACE", "CONNECT", "PATCH", "EXTENSION"]}, {"op": "add", "path": "/components/schemas/CreatedAtSortMode/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CreatedAtSortMode/enum", "value": ["created-at-ascending", "created-at-descending"]}, {"op": "add", "path": "/components/schemas/CameraDragInteractionType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CameraDragInteractionType/enum", "value": ["pan", "rotate", "zoom"]}, {"op": "add", "path": "/components/schemas/UnitTemperature/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitTemperature/enum", "value": ["celsius", "fahrenheit", "kelvin", "rankine"]}, {"op": "add", "path": "/components/schemas/UnitPressure/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitPressure/enum", "value": ["atmospheres", "bars", "hectopascals", "kilopascals", "millibars", "pascals", "psi"]}, {"op": "add", "path": "/components/schemas/InvoiceStatus/type", "value": "string"}, {"op": "add", "path": "/components/schemas/InvoiceStatus/enum", "value": ["deleted", "draft", "open", "paid", "uncollectible", "void"]}, {"op": "add", "path": "/components/schemas/OAuth2GrantType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/OAuth2GrantType/enum", "value": ["urn:ietf:params:oauth:grant-type:device_code"]}, {"op": "add", "path": "/components/schemas/ApiCallStatus/type", "value": "string"}, {"op": "add", "path": "/components/schemas/ApiCallStatus/enum", "value": ["Queued", "Uploaded", "In Progress", "Completed", "Failed"]}, {"op": "add", "path": "/components/schemas/FileImportFormat/type", "value": "string"}, {"op": "add", "path": "/components/schemas/FileImportFormat/enum", "value": ["dae", "dxf", "fbx", "obj_zip", "obj", "ply", "step", "stl"]}, {"op": "add", "path": "/components/schemas/PhysicsConstantName/type", "value": "string"}, {"op": "add", "path": "/components/schemas/PhysicsConstantName/enum", "value": ["pi", "c", "speed_of_light", "G", "newtonian_gravitation", "h", "planck_const", "mu_0", "vacuum_permeability", "E_0", "vacuum_permitivity", "Z_0", "vacuum_impedance", "k_e", "coulomb_const", "e", "elementary_charge", "m_e", "electron_mass", "m_p", "proton_mass", "mu_B", "bohr_magneton", "NA", "avogadro_num", "R", "molar_gas_const", "K_B", "boltzmann_const", "F", "faraday_const", "sigma", "stefan_boltzmann_const"]}, {"op": "add", "path": "/components/schemas/Environment/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Environment/enum", "value": ["DEVELOPMENT", "PREVIEW", "PRODUCTION"]}, {"op": "add", "path": "/components/schemas/Currency/type", "value": "string"}, {"op": "add", "path": "/components/schemas/Currency/enum", "value": ["aed", "afn", "all", "amd", "ang", "aoa", "ars", "aud", "awg", "azn", "bam", "bbd", "bdt", "bgn", "bif", "bmd", "bnd", "bob", "brl", "bsd", "bwp", "bzd", "cad", "cdf", "chf", "clp", "cny", "cop", "crc", "cve", "czk", "djf", "dkk", "dop", "dzd", "eek", "egp", "etb", "eur", "fjd", "fkp", "gbp", "gel", "gip", "gmd", "gnf", "gtq", "gyd", "hkd", "hnl", "hrk", "htg", "huf", "idr", "ils", "inr", "isk", "jmd", "jpy", "kes", "kgs", "khr", "kmf", "krw", "kyd", "kzt", "lak", "lbp", "lkr", "lrd", "lsl", "ltl", "lvl", "mad", "mdl", "mga", "mkd", "mnt", "mop", "mro", "mur", "mvr", "mwk", "mxn", "myr", "mzn", "nad", "ngn", "nio", "nok", "npr", "nzd", "pab", "pen", "pgk", "php", "pkr", "pln", "pyg", "qar", "ron", "rsd", "rub", "rwf", "sar", "sbd", "scr", "sek", "sgd", "shp", "sll", "sos", "srd", "std", "svc", "szl", "thb", "tjs", "top", "try", "ttd", "twd", "tzs", "uah", "ugx", "usd", "uyu", "uzs", "vef", "vnd", "vuv", "wst", "xaf", "xcd", "xof", "xpf", "yer", "zar", "zmw"]}, {"op": "add", "path": "/components/schemas/AiPluginApiType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginApiType/enum", "value": ["openapi"]}, {"op": "add", "path": "/components/schemas/UnitAngle/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitAngle/enum", "value": ["degrees", "radians"]}, {"op": "add", "path": "/components/schemas/AiPluginHttpAuthType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AiPluginHttpAuthType/enum", "value": ["basic", "bearer"]}, {"op": "add", "path": "/components/schemas/UnitFrequency/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitFrequency/enum", "value": ["gigahertz", "hertz", "kilohertz", "megahertz", "microhertz", "millihertz", "nanohertz", "terahertz"]}, {"op": "add", "path": "/components/schemas/UnitArea/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitArea/enum", "value": ["acres", "hectares", "square_centimetres", "square_decimetres", "square_feet", "square_hectometres", "square_inches", "square_kilometres", "square_metres", "square_micrometres", "square_miles", "square_millimetres", "square_nanometres", "square_yards"]}, {"op": "add", "path": "/components/schemas/CodeLanguage/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CodeLanguage/enum", "value": ["go", "python", "node"]}, {"op": "add", "path": "/components/schemas/FileExportFormat/type", "value": "string"}, {"op": "add", "path": "/components/schemas/FileExportFormat/enum", "value": ["dae", "dxf", "fbx", "fbxb", "obj", "ply", "step", "stl"]}, {"op": "add", "path": "/components/schemas/PaymentMethodType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/PaymentMethodType/enum", "value": ["card"]}, {"op": "add", "path": "/components/schemas/UnitVolume/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitVolume/enum", "value": ["cubic_centimetres", "cubic_feet", "cubic_inches", "cubic_metres", "cubic_yards", "cups", "drams", "drops", "fluid_ounces", "fluid_ounces_uk", "gallons", "gallons_uk", "litres", "millilitres", "pints", "pints_uk", "quarts", "tablespoons", "teaspoons"]}, {"op": "add", "path": "/components/schemas/UnitForce/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitForce/enum", "value": ["dynes", "kiloponds", "micronewtons", "millinewtons", "newtons", "poundals", "pounds"]}, {"op": "add", "path": "/components/schemas/CountryCode/type", "value": "string"}, {"op": "add", "path": "/components/schemas/CountryCode/enum", "value": ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "CV", "KH", "CM", "CA", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"]}, {"op": "add", "path": "/components/schemas/AsyncApiCallType/type", "value": "string"}, {"op": "add", "path": "/components/schemas/AsyncApiCallType/enum", "value": ["FileConversion", "FileVolume", "FileCenterOfMass", "FileMass", "FileDensity", "FileSurfaceArea"]}, {"op": "add", "path": "/components/schemas/UnitPower/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitPower/enum", "value": ["btu_per_minute", "horsepower", "kilowatts", "metric_horsepower", "microwatts", "milliwatts", "watts"]}, {"op": "add", "path": "/components/schemas/UnitLength/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitLength/enum", "value": ["centimetres", "decimetres", "feet", "furlongs", "hectometres", "inches", "kilometres", "metres", "micrometres", "miles", "millimetres", "nanometres", "yards"]}, {"op": "add", "path": "/components/schemas/UnitCurrent/type", "value": "string"}, {"op": "add", "path": "/components/schemas/UnitCurrent/enum", "value": ["amperes", "microamperes", "milliamperes", "nanoamperes"]}, {"op": "add", "path": "/info/x-python", "value": {"client": "# Create a client with your token.\nfrom kittycad import Client\n\nclient = Client(token=\"$TOKEN\")\n\n# - OR -\n\n# Create a new client with your token parsed from the environment variable:\n# `KITTYCAD_API_TOKEN`.\nfrom kittycad import ClientFromEnv\n\nclient = ClientFromEnv()\n\n# NOTE: The python library additionally implements asyncio, however all the code samples we\n# show below use the sync functions for ease of use and understanding.\n# Check out the library docs at:\n# https://python.api.docs.kittycad.io/_autosummary/kittycad.api.html#module-kittycad.api\n# for more details.", "install": "pip install kittycad"}}] \ No newline at end of file diff --git a/kittycad/examples_test.py b/kittycad/examples_test.py index 277dfeca5..7cf512d5f 100644 --- a/kittycad/examples_test.py +++ b/kittycad/examples_test.py @@ -142,12 +142,11 @@ 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 import ModelingCmd 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_angle import UnitAngle from kittycad.models.unit_area import UnitArea from kittycad.models.unit_current import UnitCurrent @@ -1403,18 +1402,7 @@ def test_cmd(): 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ), @@ -1424,18 +1412,7 @@ def test_cmd(): 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ), @@ -1452,18 +1429,7 @@ async def test_cmd_async(): 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ), @@ -1473,18 +1439,7 @@ async def test_cmd_async(): 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ), @@ -1501,18 +1456,7 @@ def test_cmd_batch(): body=ModelingCmdReqBatch( cmds={ "": 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ) @@ -1536,18 +1480,7 @@ def test_cmd_batch(): body=ModelingCmdReqBatch( cmds={ "": 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ) @@ -1569,18 +1502,7 @@ async def test_cmd_batch_async(): body=ModelingCmdReqBatch( cmds={ "": 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ) @@ -1597,18 +1519,7 @@ async def test_cmd_batch_async(): body=ModelingCmdReqBatch( cmds={ "": 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=ModelingCmd.START_PATH, cmd_id=ModelingCmdId(""), file_id="", ) diff --git a/kittycad/models/__init__.py b/kittycad/models/__init__.py index ee06484c3..599886fda 100644 --- a/kittycad/models/__init__.py +++ b/kittycad/models/__init__.py @@ -21,6 +21,7 @@ from .async_api_call_results_page import AsyncApiCallResultsPage from .async_api_call_type import AsyncApiCallType from .billing_info import BillingInfo from .cache_metadata import CacheMetadata +from .camera_drag_interaction_type import CameraDragInteractionType from .card_details import CardDetails from .cluster import Cluster from .code_language import CodeLanguage @@ -28,6 +29,7 @@ from .code_output import CodeOutput from .commit import Commit from .connection import Connection from .country_code import CountryCode +from .coupon import Coupon from .created_at_sort_mode import CreatedAtSortMode from .currency import Currency from .customer import Customer @@ -35,6 +37,7 @@ from .customer_balance import CustomerBalance from .device_access_token_request_form import DeviceAccessTokenRequestForm from .device_auth_request_form import DeviceAuthRequestForm from .device_auth_verify_params import DeviceAuthVerifyParams +from .discount import Discount from .docker_system_info import DockerSystemInfo from .email_authentication_form import EmailAuthenticationForm from .engine_metadata import EngineMetadata @@ -64,7 +67,6 @@ 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 @@ -81,6 +83,7 @@ from .o_auth2_client_info import OAuth2ClientInfo from .o_auth2_grant_type import OAuth2GrantType from .onboarding import Onboarding from .output_file import OutputFile +from .path_segment import PathSegment from .payment_intent import PaymentIntent from .payment_method import PaymentMethod from .payment_method_card_checks import PaymentMethodCardChecks diff --git a/kittycad/models/ai_plugin_api.py b/kittycad/models/ai_plugin_api.py index 529126c3a..cce7c8791 100644 --- a/kittycad/models/ai_plugin_api.py +++ b/kittycad/models/ai_plugin_api.py @@ -46,7 +46,7 @@ class AiPluginApi: if isinstance(_type, Unset): type = UNSET else: - type = AiPluginApiType(_type) + type = _type # type: ignore[arg-type] url = d.pop("url", UNSET) diff --git a/kittycad/models/ai_plugin_auth.py b/kittycad/models/ai_plugin_auth.py index f1a725572..0b798b6fc 100644 --- a/kittycad/models/ai_plugin_auth.py +++ b/kittycad/models/ai_plugin_auth.py @@ -42,14 +42,14 @@ class AiPluginAuth: if isinstance(_authorization_type, Unset): authorization_type = UNSET else: - authorization_type = AiPluginHttpAuthType(_authorization_type) + authorization_type = _authorization_type # type: ignore[arg-type] _type = d.pop("type", UNSET) type: Union[Unset, AiPluginAuthType] if isinstance(_type, Unset): type = UNSET else: - type = AiPluginAuthType(_type) + type = _type # type: ignore[arg-type] ai_plugin_auth = cls( authorization_type=authorization_type, diff --git a/kittycad/models/api_call_with_price.py b/kittycad/models/api_call_with_price.py index 0bed627e3..06d95e332 100644 --- a/kittycad/models/api_call_with_price.py +++ b/kittycad/models/api_call_with_price.py @@ -164,7 +164,7 @@ class ApiCallWithPrice: if isinstance(_method, Unset): method = UNSET else: - method = Method(_method) + method = _method # type: ignore[arg-type] minutes = d.pop("minutes", UNSET) diff --git a/kittycad/models/async_api_call.py b/kittycad/models/async_api_call.py index 5fd48571b..c29aeda9d 100644 --- a/kittycad/models/async_api_call.py +++ b/kittycad/models/async_api_call.py @@ -125,14 +125,14 @@ class AsyncApiCall: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _type = d.pop("type", UNSET) type: Union[Unset, AsyncApiCallType] if isinstance(_type, Unset): type = UNSET else: - type = AsyncApiCallType(_type) + type = _type # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/async_api_call_output.py b/kittycad/models/async_api_call_output.py index 5fd7db465..dc8860897 100644 --- a/kittycad/models/async_api_call_output.py +++ b/kittycad/models/async_api_call_output.py @@ -120,14 +120,14 @@ class FileConversion: if isinstance(_output_format, Unset): output_format = UNSET else: - output_format = FileExportFormat(_output_format) + output_format = _output_format # type: ignore[arg-type] _src_format = d.pop("src_format", UNSET) src_format: Union[Unset, FileImportFormat] if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -141,7 +141,7 @@ class FileConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] type = d.pop("type", UNSET) @@ -296,7 +296,7 @@ class FileCenterOfMass: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -310,7 +310,7 @@ class FileCenterOfMass: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] type = d.pop("type", UNSET) @@ -468,7 +468,7 @@ class FileMass: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -482,7 +482,7 @@ class FileMass: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] type = d.pop("type", UNSET) @@ -633,7 +633,7 @@ class FileVolume: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -647,7 +647,7 @@ class FileVolume: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] type = d.pop("type", UNSET) @@ -807,7 +807,7 @@ class FileDensity: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -821,7 +821,7 @@ class FileDensity: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] type = d.pop("type", UNSET) @@ -972,7 +972,7 @@ class FileSurfaceArea: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -986,7 +986,7 @@ class FileSurfaceArea: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] surface_area = d.pop("surface_area", UNSET) diff --git a/kittycad/models/camera_drag_interaction_type.py b/kittycad/models/camera_drag_interaction_type.py new file mode 100644 index 000000000..9de78e7fc --- /dev/null +++ b/kittycad/models/camera_drag_interaction_type.py @@ -0,0 +1,15 @@ +from enum import Enum + + +class CameraDragInteractionType(str, Enum): + """The type of camera drag interaction.""" # noqa: E501 + + """# Camera pan """ # noqa: E501 + PAN = "pan" + """# Camera rotate (revolve/orbit) """ # noqa: E501 + ROTATE = "rotate" + """# Camera zoom (increase or decrease distance to reference point center) """ # noqa: E501 + ZOOM = "zoom" + + def __str__(self) -> str: + return str(self.value) diff --git a/kittycad/models/code_language.py b/kittycad/models/code_language.py index ca60ab76a..43088c5c3 100644 --- a/kittycad/models/code_language.py +++ b/kittycad/models/code_language.py @@ -4,8 +4,11 @@ from enum import Enum class CodeLanguage(str, Enum): """The language code is written in.""" # noqa: E501 + """# The `go` programming language. """ # noqa: E501 GO = "go" + """# The `python` programming language. """ # noqa: E501 PYTHON = "python" + """# The `node` programming language. """ # noqa: E501 NODE = "node" def __str__(self) -> str: diff --git a/kittycad/models/coupon.py b/kittycad/models/coupon.py new file mode 100644 index 000000000..f552d4b45 --- /dev/null +++ b/kittycad/models/coupon.py @@ -0,0 +1,76 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..types import UNSET, Unset + +M = TypeVar("M", bound="Coupon") + + +@attr.s(auto_attribs=True) +class Coupon: + """The resource representing a Coupon.""" # noqa: E501 + + amount_off: Union[Unset, float] = UNSET + deleted: Union[Unset, bool] = False + id: Union[Unset, str] = UNSET + percent_off: Union[Unset, float] = UNSET + + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + amount_off = self.amount_off + deleted = self.deleted + id = self.id + percent_off = self.percent_off + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if amount_off is not UNSET: + field_dict["amount_off"] = amount_off + if deleted is not UNSET: + field_dict["deleted"] = deleted + if id is not UNSET: + field_dict["id"] = id + if percent_off is not UNSET: + field_dict["percent_off"] = percent_off + + return field_dict + + @classmethod + def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: + d = src_dict.copy() + amount_off = d.pop("amount_off", UNSET) + + deleted = d.pop("deleted", UNSET) + + id = d.pop("id", UNSET) + + percent_off = d.pop("percent_off", UNSET) + + coupon = cls( + amount_off=amount_off, + deleted=deleted, + id=id, + percent_off=percent_off, + ) + + coupon.additional_properties = d + return coupon + + @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 diff --git a/kittycad/models/customer.py b/kittycad/models/customer.py index 959f26bd9..c8ed39940 100644 --- a/kittycad/models/customer.py +++ b/kittycad/models/customer.py @@ -8,7 +8,7 @@ from ..models.currency import Currency from ..models.new_address import NewAddress from ..types import UNSET, Unset -M = TypeVar("M", bound="Customer") +N = TypeVar("N", bound="Customer") @attr.s(auto_attribs=True) @@ -71,7 +71,7 @@ class Customer: return field_dict @classmethod - def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: + def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: d = src_dict.copy() _address = d.pop("address", UNSET) address: Union[Unset, NewAddress] @@ -94,7 +94,7 @@ class Customer: if isinstance(_currency, Unset): currency = UNSET else: - currency = Currency(_currency) + currency = _currency # type: ignore[arg-type] delinquent = d.pop("delinquent", UNSET) diff --git a/kittycad/models/customer_balance.py b/kittycad/models/customer_balance.py index 9fe005129..dd15cfcd7 100644 --- a/kittycad/models/customer_balance.py +++ b/kittycad/models/customer_balance.py @@ -7,7 +7,7 @@ from dateutil.parser import isoparse from ..models.uuid import Uuid from ..types import UNSET, Unset -N = TypeVar("N", bound="CustomerBalance") +J = TypeVar("J", bound="CustomerBalance") @attr.s(auto_attribs=True) @@ -64,7 +64,7 @@ class CustomerBalance: return field_dict @classmethod - def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: d = src_dict.copy() _created_at = d.pop("created_at", UNSET) created_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/device_access_token_request_form.py b/kittycad/models/device_access_token_request_form.py index a19d30c43..24e6cbdba 100644 --- a/kittycad/models/device_access_token_request_form.py +++ b/kittycad/models/device_access_token_request_form.py @@ -5,7 +5,7 @@ import attr from ..models.o_auth2_grant_type import OAuth2GrantType from ..types import UNSET, Unset -J = TypeVar("J", bound="DeviceAccessTokenRequestForm") +V = TypeVar("V", bound="DeviceAccessTokenRequestForm") @attr.s(auto_attribs=True) @@ -37,7 +37,7 @@ class DeviceAccessTokenRequestForm: return field_dict @classmethod - def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: d = src_dict.copy() client_id = d.pop("client_id", UNSET) @@ -48,7 +48,7 @@ class DeviceAccessTokenRequestForm: if isinstance(_grant_type, Unset): grant_type = UNSET else: - grant_type = OAuth2GrantType(_grant_type) + grant_type = _grant_type # type: ignore[arg-type] device_access_token_request_form = cls( client_id=client_id, diff --git a/kittycad/models/device_auth_request_form.py b/kittycad/models/device_auth_request_form.py index 81821e4b7..55f216280 100644 --- a/kittycad/models/device_auth_request_form.py +++ b/kittycad/models/device_auth_request_form.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -V = TypeVar("V", bound="DeviceAuthRequestForm") +F = TypeVar("F", bound="DeviceAuthRequestForm") @attr.s(auto_attribs=True) @@ -27,7 +27,7 @@ class DeviceAuthRequestForm: return field_dict @classmethod - def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: + def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: d = src_dict.copy() client_id = d.pop("client_id", UNSET) diff --git a/kittycad/models/device_auth_verify_params.py b/kittycad/models/device_auth_verify_params.py index 1d0171b22..6e36686dc 100644 --- a/kittycad/models/device_auth_verify_params.py +++ b/kittycad/models/device_auth_verify_params.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -F = TypeVar("F", bound="DeviceAuthVerifyParams") +V = TypeVar("V", bound="DeviceAuthVerifyParams") @attr.s(auto_attribs=True) @@ -27,7 +27,7 @@ class DeviceAuthVerifyParams: return field_dict @classmethod - def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: + def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: d = src_dict.copy() user_code = d.pop("user_code", UNSET) diff --git a/kittycad/models/discount.py b/kittycad/models/discount.py new file mode 100644 index 000000000..4a185760a --- /dev/null +++ b/kittycad/models/discount.py @@ -0,0 +1,62 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..models.coupon import Coupon +from ..types import UNSET, Unset + +J = TypeVar("J", bound="Discount") + + +@attr.s(auto_attribs=True) +class Discount: + """The resource representing a Discount.""" # noqa: E501 + + coupon: Union[Unset, Coupon] = UNSET + + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + if not isinstance(self.coupon, Unset): + coupon = self.coupon + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if coupon is not UNSET: + field_dict["coupon"] = coupon + + return field_dict + + @classmethod + def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + d = src_dict.copy() + _coupon = d.pop("coupon", UNSET) + coupon: Union[Unset, Coupon] + if isinstance(_coupon, Unset): + coupon = UNSET + else: + coupon = Coupon(_coupon) + + discount = cls( + coupon=coupon, + ) + + discount.additional_properties = d + return discount + + @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 diff --git a/kittycad/models/email_authentication_form.py b/kittycad/models/email_authentication_form.py index 8c9243052..541ba03db 100644 --- a/kittycad/models/email_authentication_form.py +++ b/kittycad/models/email_authentication_form.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -J = TypeVar("J", bound="EmailAuthenticationForm") +L = TypeVar("L", bound="EmailAuthenticationForm") @attr.s(auto_attribs=True) @@ -31,7 +31,7 @@ class EmailAuthenticationForm: return field_dict @classmethod - def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: d = src_dict.copy() callback_url = d.pop("callback_url", UNSET) diff --git a/kittycad/models/engine_metadata.py b/kittycad/models/engine_metadata.py index 34f92f897..fdda08788 100644 --- a/kittycad/models/engine_metadata.py +++ b/kittycad/models/engine_metadata.py @@ -8,7 +8,7 @@ from ..models.environment import Environment from ..models.file_system_metadata import FileSystemMetadata from ..types import UNSET, Unset -V = TypeVar("V", bound="EngineMetadata") +E = TypeVar("E", bound="EngineMetadata") @attr.s(auto_attribs=True) @@ -57,7 +57,7 @@ class EngineMetadata: return field_dict @classmethod - def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: + def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: d = src_dict.copy() async_jobs_running = d.pop("async_jobs_running", UNSET) @@ -73,7 +73,7 @@ class EngineMetadata: if isinstance(_environment, Unset): environment = UNSET else: - environment = Environment(_environment) + environment = _environment # type: ignore[arg-type] _fs = d.pop("fs", UNSET) fs: Union[Unset, FileSystemMetadata] diff --git a/kittycad/models/error.py b/kittycad/models/error.py index a36a5be62..101d93b6b 100644 --- a/kittycad/models/error.py +++ b/kittycad/models/error.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -L = TypeVar("L", bound="Error") +Y = TypeVar("Y", bound="Error") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class Error: return field_dict @classmethod - def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: + def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: d = src_dict.copy() error_code = d.pop("error_code", UNSET) diff --git a/kittycad/models/executor_metadata.py b/kittycad/models/executor_metadata.py index fa64ed40b..7e153f71d 100644 --- a/kittycad/models/executor_metadata.py +++ b/kittycad/models/executor_metadata.py @@ -6,7 +6,7 @@ from ..models.docker_system_info import DockerSystemInfo from ..models.environment import Environment from ..types import UNSET, Unset -E = TypeVar("E", bound="ExecutorMetadata") +H = TypeVar("H", bound="ExecutorMetadata") @attr.s(auto_attribs=True) @@ -41,7 +41,7 @@ class ExecutorMetadata: 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() _docker_info = d.pop("docker_info", UNSET) docker_info: Union[Unset, DockerSystemInfo] @@ -55,7 +55,7 @@ class ExecutorMetadata: if isinstance(_environment, Unset): environment = UNSET else: - environment = Environment(_environment) + environment = _environment # type: ignore[arg-type] git_hash = d.pop("git_hash", UNSET) diff --git a/kittycad/models/extended_user.py b/kittycad/models/extended_user.py index 5aa443778..4431d369e 100644 --- a/kittycad/models/extended_user.py +++ b/kittycad/models/extended_user.py @@ -6,7 +6,7 @@ from dateutil.parser import isoparse from ..types import UNSET, Unset -Y = TypeVar("Y", bound="ExtendedUser") +T = TypeVar("T", bound="ExtendedUser") @attr.s(auto_attribs=True) @@ -97,7 +97,7 @@ class ExtendedUser: return field_dict @classmethod - def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: d = src_dict.copy() company = d.pop("company", UNSET) diff --git a/kittycad/models/extended_user_results_page.py b/kittycad/models/extended_user_results_page.py index f1e371f2e..9fb07d435 100644 --- a/kittycad/models/extended_user_results_page.py +++ b/kittycad/models/extended_user_results_page.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -H = TypeVar("H", bound="ExtendedUserResultsPage") +M = TypeVar("M", bound="ExtendedUserResultsPage") @attr.s(auto_attribs=True) @@ -37,7 +37,7 @@ class ExtendedUserResultsPage: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: d = src_dict.copy() from ..models.extended_user import ExtendedUser diff --git a/kittycad/models/extrude.py b/kittycad/models/extrude.py index f839c7920..4ca82fba0 100644 --- a/kittycad/models/extrude.py +++ b/kittycad/models/extrude.py @@ -5,19 +5,21 @@ import attr from ..models.modeling_cmd_id import ModelingCmdId from ..types import UNSET, Unset -T = TypeVar("T", bound="Extrude") +B = TypeVar("B", bound="Extrude") @attr.s(auto_attribs=True) class Extrude: """Command for extruding a solid.""" # noqa: E501 + cap: Union[Unset, bool] = False 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]: + cap = self.cap distance = self.distance if not isinstance(self.target, Unset): target = self.target @@ -25,6 +27,8 @@ class Extrude: field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) + if cap is not UNSET: + field_dict["cap"] = cap if distance is not UNSET: field_dict["distance"] = distance if target is not UNSET: @@ -33,8 +37,10 @@ class Extrude: return field_dict @classmethod - def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: d = src_dict.copy() + cap = d.pop("cap", UNSET) + distance = d.pop("distance", UNSET) _target = d.pop("target", UNSET) @@ -45,6 +51,7 @@ class Extrude: target = ModelingCmdId(_target) extrude = cls( + cap=cap, distance=distance, target=target, ) diff --git a/kittycad/models/file_center_of_mass.py b/kittycad/models/file_center_of_mass.py index 1c63e4850..20e46f504 100644 --- a/kittycad/models/file_center_of_mass.py +++ b/kittycad/models/file_center_of_mass.py @@ -9,7 +9,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -M = TypeVar("M", bound="FileCenterOfMass") +S = TypeVar("S", bound="FileCenterOfMass") @attr.s(auto_attribs=True) @@ -80,7 +80,7 @@ class FileCenterOfMass: return field_dict @classmethod - def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: + def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S: d = src_dict.copy() center_of_mass = cast(List[float], d.pop("center_of_mass", UNSET)) @@ -112,7 +112,7 @@ class FileCenterOfMass: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -126,7 +126,7 @@ class FileCenterOfMass: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/file_conversion.py b/kittycad/models/file_conversion.py index 6b0102f04..4b9bb34bf 100644 --- a/kittycad/models/file_conversion.py +++ b/kittycad/models/file_conversion.py @@ -10,7 +10,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -B = TypeVar("B", bound="FileConversion") +A = TypeVar("A", bound="FileConversion") @attr.s(auto_attribs=True) @@ -84,7 +84,7 @@ class FileConversion: return field_dict @classmethod - def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: + 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] @@ -116,14 +116,14 @@ class FileConversion: if isinstance(_output_format, Unset): output_format = UNSET else: - output_format = FileExportFormat(_output_format) + output_format = _output_format # type: ignore[arg-type] _src_format = d.pop("src_format", UNSET) src_format: Union[Unset, FileImportFormat] if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -137,7 +137,7 @@ class FileConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/file_density.py b/kittycad/models/file_density.py index caeac1347..1d1d53e14 100644 --- a/kittycad/models/file_density.py +++ b/kittycad/models/file_density.py @@ -9,7 +9,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -S = TypeVar("S", bound="FileDensity") +H = TypeVar("H", bound="FileDensity") @attr.s(auto_attribs=True) @@ -82,7 +82,7 @@ class FileDensity: return field_dict @classmethod - def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S: + 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] @@ -116,7 +116,7 @@ class FileDensity: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -130,7 +130,7 @@ class FileDensity: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/file_mass.py b/kittycad/models/file_mass.py index 77af35aa4..d6beaac8b 100644 --- a/kittycad/models/file_mass.py +++ b/kittycad/models/file_mass.py @@ -9,7 +9,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -A = TypeVar("A", bound="FileMass") +E = TypeVar("E", bound="FileMass") @attr.s(auto_attribs=True) @@ -82,7 +82,7 @@ class FileMass: 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() _completed_at = d.pop("completed_at", UNSET) completed_at: Union[Unset, datetime.datetime] @@ -116,7 +116,7 @@ class FileMass: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -130,7 +130,7 @@ class FileMass: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/file_surface_area.py b/kittycad/models/file_surface_area.py index 8ec4ef8d9..5158aa2b3 100644 --- a/kittycad/models/file_surface_area.py +++ b/kittycad/models/file_surface_area.py @@ -9,7 +9,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -H = TypeVar("H", bound="FileSurfaceArea") +G = TypeVar("G", bound="FileSurfaceArea") @attr.s(auto_attribs=True) @@ -78,7 +78,7 @@ class FileSurfaceArea: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + 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] @@ -108,7 +108,7 @@ class FileSurfaceArea: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -122,7 +122,7 @@ class FileSurfaceArea: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] surface_area = d.pop("surface_area", UNSET) diff --git a/kittycad/models/file_system_metadata.py b/kittycad/models/file_system_metadata.py index d8db98e71..33255f320 100644 --- a/kittycad/models/file_system_metadata.py +++ b/kittycad/models/file_system_metadata.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -E = TypeVar("E", bound="FileSystemMetadata") +J = TypeVar("J", bound="FileSystemMetadata") @attr.s(auto_attribs=True) @@ -29,7 +29,7 @@ class FileSystemMetadata: return field_dict @classmethod - def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: + def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: d = src_dict.copy() ok = d.pop("ok", UNSET) diff --git a/kittycad/models/file_volume.py b/kittycad/models/file_volume.py index df7168d3d..d98cdf27b 100644 --- a/kittycad/models/file_volume.py +++ b/kittycad/models/file_volume.py @@ -9,7 +9,7 @@ from ..models.file_import_format import FileImportFormat from ..models.uuid import Uuid from ..types import UNSET, Unset -G = TypeVar("G", bound="FileVolume") +R = TypeVar("R", bound="FileVolume") @attr.s(auto_attribs=True) @@ -78,7 +78,7 @@ class FileVolume: return field_dict @classmethod - def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G: + 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] @@ -108,7 +108,7 @@ class FileVolume: if isinstance(_src_format, Unset): src_format = UNSET else: - src_format = FileImportFormat(_src_format) + src_format = _src_format # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -122,7 +122,7 @@ class FileVolume: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/gateway.py b/kittycad/models/gateway.py index 81180b479..7df1c1542 100644 --- a/kittycad/models/gateway.py +++ b/kittycad/models/gateway.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -J = TypeVar("J", bound="Gateway") +L = TypeVar("L", bound="Gateway") @attr.s(auto_attribs=True) @@ -43,7 +43,7 @@ class Gateway: return field_dict @classmethod - def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: d = src_dict.copy() auth_timeout = d.pop("auth_timeout", UNSET) diff --git a/kittycad/models/index_info.py b/kittycad/models/index_info.py index ebd135eb1..c04fe37ab 100644 --- a/kittycad/models/index_info.py +++ b/kittycad/models/index_info.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -R = TypeVar("R", bound="IndexInfo") +Y = TypeVar("Y", bound="IndexInfo") @attr.s(auto_attribs=True) @@ -41,7 +41,7 @@ class IndexInfo: return field_dict @classmethod - def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R: + def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: d = src_dict.copy() mirrors = cast(List[str], d.pop("mirrors", UNSET)) diff --git a/kittycad/models/invoice.py b/kittycad/models/invoice.py index 8ae8d9f99..f6b63deba 100644 --- a/kittycad/models/invoice.py +++ b/kittycad/models/invoice.py @@ -8,7 +8,7 @@ from ..models.currency import Currency from ..models.invoice_status import InvoiceStatus from ..types import UNSET, Unset -L = TypeVar("L", bound="Invoice") +H = TypeVar("H", bound="Invoice") @attr.s(auto_attribs=True) @@ -26,6 +26,9 @@ class Invoice: customer_id: Union[Unset, str] = UNSET default_payment_method: Union[Unset, str] = UNSET description: Union[Unset, str] = UNSET + from ..models.discount import Discount + + discounts: Union[Unset, List[Discount]] = UNSET id: Union[Unset, str] = UNSET from ..models.invoice_line_item import InvoiceLineItem @@ -59,6 +62,11 @@ class Invoice: customer_id = self.customer_id default_payment_method = self.default_payment_method description = self.description + from ..models.discount import Discount + + discounts: Union[Unset, List[Discount]] = UNSET + if not isinstance(self.discounts, Unset): + discounts = self.discounts id = self.id from ..models.invoice_line_item import InvoiceLineItem @@ -103,6 +111,8 @@ class Invoice: field_dict["default_payment_method"] = default_payment_method if description is not UNSET: field_dict["description"] = description + if discounts is not UNSET: + field_dict["discounts"] = discounts if id is not UNSET: field_dict["id"] = id if lines is not UNSET: @@ -133,7 +143,7 @@ class Invoice: 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() amount_due = d.pop("amount_due", UNSET) @@ -157,7 +167,7 @@ class Invoice: if isinstance(_currency, Unset): currency = UNSET else: - currency = Currency(_currency) + currency = _currency # type: ignore[arg-type] customer_email = d.pop("customer_email", UNSET) @@ -167,6 +177,10 @@ class Invoice: description = d.pop("description", UNSET) + from ..models.discount import Discount + + discounts = cast(List[Discount], d.pop("discounts", UNSET)) + id = d.pop("id", UNSET) from ..models.invoice_line_item import InvoiceLineItem @@ -189,7 +203,7 @@ class Invoice: if isinstance(_status, Unset): status = UNSET else: - status = InvoiceStatus(_status) + status = _status # type: ignore[arg-type] subtotal = d.pop("subtotal", UNSET) @@ -211,6 +225,7 @@ class Invoice: customer_id=customer_id, default_payment_method=default_payment_method, description=description, + discounts=discounts, id=id, lines=lines, metadata=metadata, diff --git a/kittycad/models/invoice_line_item.py b/kittycad/models/invoice_line_item.py index 232488edb..89d9c1ce7 100644 --- a/kittycad/models/invoice_line_item.py +++ b/kittycad/models/invoice_line_item.py @@ -5,7 +5,7 @@ import attr from ..models.currency import Currency from ..types import UNSET, Unset -Y = TypeVar("Y", bound="InvoiceLineItem") +K = TypeVar("K", bound="InvoiceLineItem") @attr.s(auto_attribs=True) @@ -49,7 +49,7 @@ class InvoiceLineItem: return field_dict @classmethod - def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: + def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K: d = src_dict.copy() amount = d.pop("amount", UNSET) @@ -58,7 +58,7 @@ class InvoiceLineItem: if isinstance(_currency, Unset): currency = UNSET else: - currency = Currency(_currency) + currency = _currency # type: ignore[arg-type] description = d.pop("description", UNSET) diff --git a/kittycad/models/jetstream.py b/kittycad/models/jetstream.py index c9457c167..ea5c17e2c 100644 --- a/kittycad/models/jetstream.py +++ b/kittycad/models/jetstream.py @@ -7,7 +7,7 @@ from ..models.jetstream_stats import JetstreamStats from ..models.meta_cluster_info import MetaClusterInfo from ..types import UNSET, Unset -H = TypeVar("H", bound="Jetstream") +V = TypeVar("V", bound="Jetstream") @attr.s(auto_attribs=True) @@ -41,7 +41,7 @@ class Jetstream: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: d = src_dict.copy() _config = d.pop("config", UNSET) config: Union[Unset, JetstreamConfig] diff --git a/kittycad/models/jetstream_api_stats.py b/kittycad/models/jetstream_api_stats.py index cf6f02dbf..2636650fa 100644 --- a/kittycad/models/jetstream_api_stats.py +++ b/kittycad/models/jetstream_api_stats.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -K = TypeVar("K", bound="JetstreamApiStats") +R = TypeVar("R", bound="JetstreamApiStats") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class JetstreamApiStats: 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() errors = d.pop("errors", UNSET) diff --git a/kittycad/models/jetstream_config.py b/kittycad/models/jetstream_config.py index 9d3bb8204..9bf69b515 100644 --- a/kittycad/models/jetstream_config.py +++ b/kittycad/models/jetstream_config.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -V = TypeVar("V", bound="JetstreamConfig") +N = TypeVar("N", bound="JetstreamConfig") @attr.s(auto_attribs=True) @@ -39,7 +39,7 @@ class JetstreamConfig: return field_dict @classmethod - def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: + def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: d = src_dict.copy() domain = d.pop("domain", UNSET) diff --git a/kittycad/models/jetstream_stats.py b/kittycad/models/jetstream_stats.py index 57fa96d6f..8353ed41a 100644 --- a/kittycad/models/jetstream_stats.py +++ b/kittycad/models/jetstream_stats.py @@ -5,7 +5,7 @@ import attr from ..models.jetstream_api_stats import JetstreamApiStats from ..types import UNSET, Unset -R = TypeVar("R", bound="JetstreamStats") +P = TypeVar("P", bound="JetstreamStats") @attr.s(auto_attribs=True) @@ -53,7 +53,7 @@ class JetstreamStats: return field_dict @classmethod - def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R: + def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P: d = src_dict.copy() accounts = d.pop("accounts", UNSET) diff --git a/kittycad/models/leaf_node.py b/kittycad/models/leaf_node.py index b4257ecd6..45267db13 100644 --- a/kittycad/models/leaf_node.py +++ b/kittycad/models/leaf_node.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -N = TypeVar("N", bound="LeafNode") +C = TypeVar("C", bound="LeafNode") @attr.s(auto_attribs=True) @@ -39,7 +39,7 @@ class LeafNode: return field_dict @classmethod - def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: d = src_dict.copy() auth_timeout = d.pop("auth_timeout", UNSET) diff --git a/kittycad/models/line3d.py b/kittycad/models/line3d.py deleted file mode 100644 index c32ed8545..000000000 --- a/kittycad/models/line3d.py +++ /dev/null @@ -1,75 +0,0 @@ -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 diff --git a/kittycad/models/mesh.py b/kittycad/models/mesh.py index 833196892..5be30406c 100644 --- a/kittycad/models/mesh.py +++ b/kittycad/models/mesh.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -C = TypeVar("C", bound="Mesh") +U = TypeVar("U", bound="Mesh") @attr.s(auto_attribs=True) @@ -25,7 +25,7 @@ class Mesh: return field_dict @classmethod - def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: + def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U: d = src_dict.copy() mesh = d.pop("mesh", UNSET) diff --git a/kittycad/models/meta_cluster_info.py b/kittycad/models/meta_cluster_info.py index 819d0a67a..2c483f480 100644 --- a/kittycad/models/meta_cluster_info.py +++ b/kittycad/models/meta_cluster_info.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -U = TypeVar("U", bound="MetaClusterInfo") +S = TypeVar("S", bound="MetaClusterInfo") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class MetaClusterInfo: return field_dict @classmethod - def from_dict(cls: Type[U], src_dict: Dict[str, Any]) -> U: + def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S: d = src_dict.copy() cluster_size = d.pop("cluster_size", UNSET) diff --git a/kittycad/models/metadata.py b/kittycad/models/metadata.py index 804e48155..8c7981543 100644 --- a/kittycad/models/metadata.py +++ b/kittycad/models/metadata.py @@ -11,7 +11,7 @@ from ..models.file_system_metadata import FileSystemMetadata from ..models.point_e_metadata import PointEMetadata from ..types import UNSET, Unset -S = TypeVar("S", bound="Metadata") +K = TypeVar("K", bound="Metadata") @attr.s(auto_attribs=True) @@ -71,7 +71,7 @@ class Metadata: return field_dict @classmethod - def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S: + def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K: d = src_dict.copy() _cache = d.pop("cache", UNSET) cache: Union[Unset, CacheMetadata] @@ -92,7 +92,7 @@ class Metadata: if isinstance(_environment, Unset): environment = UNSET else: - environment = Environment(_environment) + environment = _environment # type: ignore[arg-type] _executor = d.pop("executor", UNSET) executor: Union[Unset, ExecutorMetadata] diff --git a/kittycad/models/modeling_cmd.py b/kittycad/models/modeling_cmd.py index 4fa30945d..fe642dbdf 100644 --- a/kittycad/models/modeling_cmd.py +++ b/kittycad/models/modeling_cmd.py @@ -1,52 +1,76 @@ +from enum import Enum from typing import Any, Dict, List, Type, TypeVar, Union import attr +from ..models.camera_drag_interaction_type import CameraDragInteractionType +from ..models.modeling_cmd_id import ModelingCmdId +from ..models.path_segment import PathSegment from ..models.point2d import Point2d +from ..models.point3d import Point3d from ..types import UNSET, Unset from .extrude import Extrude -from .line3d import Line3d - -AddLine = Line3d -K = TypeVar("K", bound="SelectionClick") +class StartPath(str, Enum): + """Start a path.""" # noqa: E501 + + START_PATH = "StartPath" + + def __str__(self) -> str: + return str(self.value) + + +Q = TypeVar("Q", bound="MovePathPen") @attr.s(auto_attribs=True) -class SelectionClick: - at: Union[Unset, Point2d] = UNSET +class MovePathPen: + path: Union[Unset, ModelingCmdId] = 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.at, Unset): - at = self.at + if not isinstance(self.path, Unset): + path = self.path + if not isinstance(self.to, Unset): + to = self.to field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) - if at is not UNSET: - field_dict["at"] = at + if path is not UNSET: + field_dict["path"] = path + if to is not UNSET: + field_dict["to"] = to return field_dict @classmethod - def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K: + def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q: d = src_dict.copy() - _at = d.pop("at", UNSET) - at: Union[Unset, Point2d] - if isinstance(_at, Unset): - at = UNSET + _path = d.pop("path", UNSET) + path: Union[Unset, ModelingCmdId] + if isinstance(_path, Unset): + path = UNSET else: - at = Point2d(_at) + path = ModelingCmdId(_path) - selection_click = cls( - at=at, + _to = d.pop("to", UNSET) + to: Union[Unset, Point3d] + if isinstance(_to, Unset): + to = UNSET + else: + to = Point3d(_to) + + move_path_pen = cls( + path=path, + to=to, ) - selection_click.additional_properties = d - return selection_click + move_path_pen.additional_properties = d + return move_path_pen @property def additional_keys(self) -> List[str]: @@ -65,4 +89,341 @@ class SelectionClick: return key in self.additional_properties -ModelingCmd = Union[AddLine, Extrude, SelectionClick] +F = TypeVar("F", bound="ExtendPath") + + +@attr.s(auto_attribs=True) +class ExtendPath: + path: Union[Unset, ModelingCmdId] = UNSET + segment: Union[Unset, PathSegment] = UNSET + + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + if not isinstance(self.path, Unset): + path = self.path + if not isinstance(self.segment, Unset): + segment = self.segment + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if path is not UNSET: + field_dict["path"] = path + if segment is not UNSET: + field_dict["segment"] = segment + + return field_dict + + @classmethod + def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: + d = src_dict.copy() + _path = d.pop("path", UNSET) + path: Union[Unset, ModelingCmdId] + if isinstance(_path, Unset): + path = UNSET + else: + path = ModelingCmdId(_path) + + _segment = d.pop("segment", UNSET) + segment: Union[Unset, PathSegment] + if isinstance(_segment, Unset): + segment = UNSET + else: + segment = _segment # type: ignore[arg-type] + + extend_path = cls( + path=path, + segment=segment, + ) + + extend_path.additional_properties = d + return extend_path + + @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 + + +H = TypeVar("H", bound="ClosePath") + + +@attr.s(auto_attribs=True) +class ClosePath: + path_id: Union[Unset, str] = UNSET + + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + path_id = self.path_id + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if path_id is not UNSET: + field_dict["path_id"] = path_id + + return field_dict + + @classmethod + def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + d = src_dict.copy() + path_id = d.pop("path_id", UNSET) + + close_path = cls( + path_id=path_id, + ) + + close_path.additional_properties = d + return close_path + + @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 + + +N = TypeVar("N", bound="CameraDragStart") + + +@attr.s(auto_attribs=True) +class CameraDragStart: + interaction: Union[Unset, CameraDragInteractionType] = UNSET + window: 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.interaction, Unset): + interaction = self.interaction + if not isinstance(self.window, Unset): + window = self.window + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if interaction is not UNSET: + field_dict["interaction"] = interaction + if window is not UNSET: + field_dict["window"] = window + + return field_dict + + @classmethod + def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + d = src_dict.copy() + _interaction = d.pop("interaction", UNSET) + interaction: Union[Unset, CameraDragInteractionType] + if isinstance(_interaction, Unset): + interaction = UNSET + else: + interaction = _interaction # type: ignore[arg-type] + + _window = d.pop("window", UNSET) + window: Union[Unset, Point2d] + if isinstance(_window, Unset): + window = UNSET + else: + window = Point2d(_window) + + camera_drag_start = cls( + interaction=interaction, + window=window, + ) + + camera_drag_start.additional_properties = d + return camera_drag_start + + @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 + + +H = TypeVar("H", bound="CameraDragMove") + + +@attr.s(auto_attribs=True) +class CameraDragMove: + interaction: Union[Unset, CameraDragInteractionType] = UNSET + sequence: Union[Unset, int] = UNSET + window: 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.interaction, Unset): + interaction = self.interaction + sequence = self.sequence + if not isinstance(self.window, Unset): + window = self.window + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if interaction is not UNSET: + field_dict["interaction"] = interaction + if sequence is not UNSET: + field_dict["sequence"] = sequence + if window is not UNSET: + field_dict["window"] = window + + return field_dict + + @classmethod + def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + d = src_dict.copy() + _interaction = d.pop("interaction", UNSET) + interaction: Union[Unset, CameraDragInteractionType] + if isinstance(_interaction, Unset): + interaction = UNSET + else: + interaction = _interaction # type: ignore[arg-type] + + sequence = d.pop("sequence", UNSET) + + _window = d.pop("window", UNSET) + window: Union[Unset, Point2d] + if isinstance(_window, Unset): + window = UNSET + else: + window = Point2d(_window) + + camera_drag_move = cls( + interaction=interaction, + sequence=sequence, + window=window, + ) + + camera_drag_move.additional_properties = d + return camera_drag_move + + @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 + + +B = TypeVar("B", bound="CameraDragEnd") + + +@attr.s(auto_attribs=True) +class CameraDragEnd: + interaction: Union[Unset, CameraDragInteractionType] = UNSET + window: 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.interaction, Unset): + interaction = self.interaction + if not isinstance(self.window, Unset): + window = self.window + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if interaction is not UNSET: + field_dict["interaction"] = interaction + if window is not UNSET: + field_dict["window"] = window + + return field_dict + + @classmethod + def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: + d = src_dict.copy() + _interaction = d.pop("interaction", UNSET) + interaction: Union[Unset, CameraDragInteractionType] + if isinstance(_interaction, Unset): + interaction = UNSET + else: + interaction = _interaction # type: ignore[arg-type] + + _window = d.pop("window", UNSET) + window: Union[Unset, Point2d] + if isinstance(_window, Unset): + window = UNSET + else: + window = Point2d(_window) + + camera_drag_end = cls( + interaction=interaction, + window=window, + ) + + camera_drag_end.additional_properties = d + return camera_drag_end + + @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[ + StartPath, + MovePathPen, + ExtendPath, + Extrude, + ClosePath, + CameraDragStart, + CameraDragMove, + CameraDragEnd, +] diff --git a/kittycad/models/modeling_cmd_req.py b/kittycad/models/modeling_cmd_req.py index 96ff73c13..d4c4be607 100644 --- a/kittycad/models/modeling_cmd_req.py +++ b/kittycad/models/modeling_cmd_req.py @@ -6,7 +6,7 @@ from ..models.modeling_cmd import ModelingCmd from ..models.modeling_cmd_id import ModelingCmdId from ..types import UNSET, Unset -Q = TypeVar("Q", bound="ModelingCmdReq") +B = TypeVar("B", bound="ModelingCmdReq") @attr.s(auto_attribs=True) @@ -39,7 +39,7 @@ class ModelingCmdReq: return field_dict @classmethod - def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q: + def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: d = src_dict.copy() _cmd = d.pop("cmd", UNSET) cmd: Union[Unset, ModelingCmd] diff --git a/kittycad/models/modeling_cmd_req_batch.py b/kittycad/models/modeling_cmd_req_batch.py index 4f13c40e3..a3a0df95a 100644 --- a/kittycad/models/modeling_cmd_req_batch.py +++ b/kittycad/models/modeling_cmd_req_batch.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -F = TypeVar("F", bound="ModelingCmdReqBatch") +P = TypeVar("P", bound="ModelingCmdReqBatch") @attr.s(auto_attribs=True) @@ -31,7 +31,7 @@ class ModelingCmdReqBatch: 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() cmds = d.pop("cmds", UNSET) file_id = d.pop("file_id", UNSET) diff --git a/kittycad/models/modeling_error.py b/kittycad/models/modeling_error.py index f32d123e1..10b6a8e86 100644 --- a/kittycad/models/modeling_error.py +++ b/kittycad/models/modeling_error.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -H = TypeVar("H", bound="ModelingError") +J = TypeVar("J", bound="ModelingError") @attr.s(auto_attribs=True) @@ -39,7 +39,7 @@ class ModelingError: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: d = src_dict.copy() error_code = d.pop("error_code", UNSET) diff --git a/kittycad/models/modeling_outcome.py b/kittycad/models/modeling_outcome.py index 04696e1f5..5da82e6e2 100644 --- a/kittycad/models/modeling_outcome.py +++ b/kittycad/models/modeling_outcome.py @@ -12,7 +12,7 @@ Success = Any Error = ModelingError -N = TypeVar("N", bound="Cancelled") +T = TypeVar("T", bound="Cancelled") @attr.s(auto_attribs=True) @@ -34,7 +34,7 @@ class Cancelled: return field_dict @classmethod - def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: d = src_dict.copy() _what_failed = d.pop("what_failed", UNSET) what_failed: Union[Unset, ModelingCmdId] diff --git a/kittycad/models/modeling_outcomes.py b/kittycad/models/modeling_outcomes.py index 74772437f..71afe9b7e 100644 --- a/kittycad/models/modeling_outcomes.py +++ b/kittycad/models/modeling_outcomes.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -H = TypeVar("H", bound="ModelingOutcomes") +V = TypeVar("V", bound="ModelingOutcomes") @attr.s(auto_attribs=True) @@ -27,7 +27,7 @@ class ModelingOutcomes: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: d = src_dict.copy() outcomes = d.pop("outcomes", UNSET) diff --git a/kittycad/models/new_address.py b/kittycad/models/new_address.py index d498b8924..ea91fb36b 100644 --- a/kittycad/models/new_address.py +++ b/kittycad/models/new_address.py @@ -5,7 +5,7 @@ import attr from ..models.country_code import CountryCode from ..types import UNSET, Unset -B = TypeVar("B", bound="NewAddress") +C = TypeVar("C", bound="NewAddress") @attr.s(auto_attribs=True) @@ -53,7 +53,7 @@ class NewAddress: return field_dict @classmethod - def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: + def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: d = src_dict.copy() city = d.pop("city", UNSET) @@ -62,7 +62,7 @@ class NewAddress: if isinstance(_country, Unset): country = UNSET else: - country = CountryCode(_country) + country = _country # type: ignore[arg-type] state = d.pop("state", UNSET) diff --git a/kittycad/models/o_auth2_client_info.py b/kittycad/models/o_auth2_client_info.py index 9e7b6b0ef..d063fd5a4 100644 --- a/kittycad/models/o_auth2_client_info.py +++ b/kittycad/models/o_auth2_client_info.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -B = TypeVar("B", bound="OAuth2ClientInfo") +R = TypeVar("R", bound="OAuth2ClientInfo") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class OAuth2ClientInfo: return field_dict @classmethod - def from_dict(cls: Type[B], src_dict: Dict[str, Any]) -> B: + def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R: d = src_dict.copy() csrf_token = d.pop("csrf_token", UNSET) diff --git a/kittycad/models/onboarding.py b/kittycad/models/onboarding.py index 0a8e1d033..7161d75c3 100644 --- a/kittycad/models/onboarding.py +++ b/kittycad/models/onboarding.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -P = TypeVar("P", bound="Onboarding") +C = TypeVar("C", bound="Onboarding") @attr.s(auto_attribs=True) @@ -37,7 +37,7 @@ class Onboarding: return field_dict @classmethod - def from_dict(cls: Type[P], src_dict: Dict[str, Any]) -> P: + def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: d = src_dict.copy() first_call_from__their_machine_date = d.pop( "first_call_from_their_machine_date", UNSET diff --git a/kittycad/models/output_file.py b/kittycad/models/output_file.py index e89851a91..2820a5efe 100644 --- a/kittycad/models/output_file.py +++ b/kittycad/models/output_file.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -J = TypeVar("J", bound="OutputFile") +E = TypeVar("E", bound="OutputFile") @attr.s(auto_attribs=True) @@ -31,7 +31,7 @@ class OutputFile: return field_dict @classmethod - def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: d = src_dict.copy() contents = d.pop("contents", UNSET) diff --git a/kittycad/models/path_segment.py b/kittycad/models/path_segment.py new file mode 100644 index 000000000..e6e7c2edf --- /dev/null +++ b/kittycad/models/path_segment.py @@ -0,0 +1,221 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..models.point2d import Point2d +from ..models.point3d import Point3d +from ..types import UNSET, Unset + +M = TypeVar("M", bound="Line") + + +@attr.s(auto_attribs=True) +class Line: + end: 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.end, Unset): + end = self.end + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if end is not UNSET: + field_dict["end"] = end + + return field_dict + + @classmethod + def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: + d = src_dict.copy() + _end = d.pop("end", UNSET) + end: Union[Unset, Point3d] + if isinstance(_end, Unset): + end = UNSET + else: + end = Point3d(_end) + + line = cls( + end=end, + ) + + line.additional_properties = d + return line + + @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 + + +S = TypeVar("S", bound="Arc") + + +@attr.s(auto_attribs=True) +class Arc: + angle_end: Union[Unset, float] = UNSET + angle_start: Union[Unset, float] = UNSET + center: Union[Unset, Point2d] = UNSET + radius: Union[Unset, float] = UNSET + + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + angle_end = self.angle_end + angle_start = self.angle_start + 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 angle_end is not UNSET: + field_dict["angle_end"] = angle_end + if angle_start is not UNSET: + field_dict["angle_start"] = angle_start + 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[S], src_dict: Dict[str, Any]) -> S: + d = src_dict.copy() + angle_end = d.pop("angle_end", UNSET) + + angle_start = d.pop("angle_start", UNSET) + + _center = d.pop("center", UNSET) + center: Union[Unset, Point2d] + if isinstance(_center, Unset): + center = UNSET + else: + center = Point2d(_center) + + radius = d.pop("radius", UNSET) + + arc = cls( + angle_end=angle_end, + angle_start=angle_start, + center=center, + radius=radius, + ) + + arc.additional_properties = d + return arc + + @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 + + +L = TypeVar("L", bound="Bezier") + + +@attr.s(auto_attribs=True) +class Bezier: + control1: Union[Unset, Point3d] = UNSET + control2: Union[Unset, Point3d] = UNSET + end: 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.control1, Unset): + control1 = self.control1 + if not isinstance(self.control2, Unset): + control2 = self.control2 + if not isinstance(self.end, Unset): + end = self.end + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if control1 is not UNSET: + field_dict["control1"] = control1 + if control2 is not UNSET: + field_dict["control2"] = control2 + if end is not UNSET: + field_dict["end"] = end + + return field_dict + + @classmethod + def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: + d = src_dict.copy() + _control1 = d.pop("control1", UNSET) + control1: Union[Unset, Point3d] + if isinstance(_control1, Unset): + control1 = UNSET + else: + control1 = Point3d(_control1) + + _control2 = d.pop("control2", UNSET) + control2: Union[Unset, Point3d] + if isinstance(_control2, Unset): + control2 = UNSET + else: + control2 = Point3d(_control2) + + _end = d.pop("end", UNSET) + end: Union[Unset, Point3d] + if isinstance(_end, Unset): + end = UNSET + else: + end = Point3d(_end) + + bezier = cls( + control1=control1, + control2=control2, + end=end, + ) + + bezier.additional_properties = d + return bezier + + @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 + + +PathSegment = Union[Line, Arc, Bezier] diff --git a/kittycad/models/payment_method.py b/kittycad/models/payment_method.py index f21b2cb36..c7a4133d4 100644 --- a/kittycad/models/payment_method.py +++ b/kittycad/models/payment_method.py @@ -9,7 +9,7 @@ from ..models.card_details import CardDetails from ..models.payment_method_type import PaymentMethodType from ..types import UNSET, Unset -V = TypeVar("V", bound="PaymentMethod") +E = TypeVar("E", bound="PaymentMethod") @attr.s(auto_attribs=True) @@ -57,7 +57,7 @@ class PaymentMethod: return field_dict @classmethod - def from_dict(cls: Type[V], src_dict: Dict[str, Any]) -> V: + def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: d = src_dict.copy() _billing_info = d.pop("billing_info", UNSET) billing_info: Union[Unset, BillingInfo] @@ -88,7 +88,7 @@ class PaymentMethod: if isinstance(_type, Unset): type = UNSET else: - type = PaymentMethodType(_type) + type = _type # type: ignore[arg-type] payment_method = cls( billing_info=billing_info, diff --git a/kittycad/models/payment_method_card_checks.py b/kittycad/models/payment_method_card_checks.py index 965a56e0b..0a0809019 100644 --- a/kittycad/models/payment_method_card_checks.py +++ b/kittycad/models/payment_method_card_checks.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -C = TypeVar("C", bound="PaymentMethodCardChecks") +D = TypeVar("D", bound="PaymentMethodCardChecks") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class PaymentMethodCardChecks: return field_dict @classmethod - def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: + def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D: d = src_dict.copy() address_line1_check = d.pop("address_line1_check", UNSET) diff --git a/kittycad/models/physics_constant.py b/kittycad/models/physics_constant.py index 8b143688f..b230061e9 100644 --- a/kittycad/models/physics_constant.py +++ b/kittycad/models/physics_constant.py @@ -9,7 +9,7 @@ from ..models.physics_constant_name import PhysicsConstantName from ..models.uuid import Uuid from ..types import UNSET, Unset -R = TypeVar("R", bound="PhysicsConstant") +Y = TypeVar("Y", bound="PhysicsConstant") @attr.s(auto_attribs=True) @@ -78,7 +78,7 @@ class PhysicsConstant: return field_dict @classmethod - def from_dict(cls: Type[R], src_dict: Dict[str, Any]) -> R: + 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] @@ -92,7 +92,7 @@ class PhysicsConstant: if isinstance(_constant, Unset): constant = UNSET else: - constant = PhysicsConstantName(_constant) + constant = _constant # type: ignore[arg-type] _created_at = d.pop("created_at", UNSET) created_at: Union[Unset, datetime.datetime] @@ -122,7 +122,7 @@ class PhysicsConstant: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/plugins_info.py b/kittycad/models/plugins_info.py index e106ed1f4..7a4604d62 100644 --- a/kittycad/models/plugins_info.py +++ b/kittycad/models/plugins_info.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -C = TypeVar("C", bound="PluginsInfo") +Y = TypeVar("Y", bound="PluginsInfo") @attr.s(auto_attribs=True) @@ -49,7 +49,7 @@ class PluginsInfo: return field_dict @classmethod - def from_dict(cls: Type[C], src_dict: Dict[str, Any]) -> C: + def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: d = src_dict.copy() authorization = cast(List[str], d.pop("authorization", UNSET)) diff --git a/kittycad/models/point2d.py b/kittycad/models/point2d.py index c31b5b7c8..65dd0acc8 100644 --- a/kittycad/models/point2d.py +++ b/kittycad/models/point2d.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -E = TypeVar("E", bound="Point2d") +D = TypeVar("D", bound="Point2d") @attr.s(auto_attribs=True) @@ -31,7 +31,7 @@ class Point2d: return field_dict @classmethod - def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: + def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D: d = src_dict.copy() x = d.pop("x", UNSET) diff --git a/kittycad/models/point3d.py b/kittycad/models/point3d.py index 1f635862a..50b15c25e 100644 --- a/kittycad/models/point3d.py +++ b/kittycad/models/point3d.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -M = TypeVar("M", bound="Point3d") +F = TypeVar("F", bound="Point3d") @attr.s(auto_attribs=True) @@ -35,7 +35,7 @@ class Point3d: return field_dict @classmethod - def from_dict(cls: Type[M], src_dict: Dict[str, Any]) -> M: + def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: d = src_dict.copy() x = d.pop("x", UNSET) diff --git a/kittycad/models/point_e_metadata.py b/kittycad/models/point_e_metadata.py index a0c5b2648..ec78e9ead 100644 --- a/kittycad/models/point_e_metadata.py +++ b/kittycad/models/point_e_metadata.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -S = TypeVar("S", bound="PointEMetadata") +Z = TypeVar("Z", bound="PointEMetadata") @attr.s(auto_attribs=True) @@ -29,7 +29,7 @@ class PointEMetadata: return field_dict @classmethod - def from_dict(cls: Type[S], src_dict: Dict[str, Any]) -> S: + def from_dict(cls: Type[Z], src_dict: Dict[str, Any]) -> Z: d = src_dict.copy() ok = d.pop("ok", UNSET) diff --git a/kittycad/models/pong.py b/kittycad/models/pong.py index 0305cee53..ecf50a21b 100644 --- a/kittycad/models/pong.py +++ b/kittycad/models/pong.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -L = TypeVar("L", bound="Pong") +G = TypeVar("G", bound="Pong") @attr.s(auto_attribs=True) @@ -27,7 +27,7 @@ class Pong: return field_dict @classmethod - def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: + def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G: d = src_dict.copy() message = d.pop("message", UNSET) diff --git a/kittycad/models/registry_service_config.py b/kittycad/models/registry_service_config.py index 31a606b00..edb876c06 100644 --- a/kittycad/models/registry_service_config.py +++ b/kittycad/models/registry_service_config.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -T = TypeVar("T", bound="RegistryServiceConfig") +L = TypeVar("L", bound="RegistryServiceConfig") @attr.s(auto_attribs=True) @@ -59,7 +59,7 @@ class RegistryServiceConfig: return field_dict @classmethod - def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: d = src_dict.copy() allow_nondistributable_artifacts_cid_rs = cast( List[str], d.pop("allow_nondistributable_artifacts_cid_rs", UNSET) diff --git a/kittycad/models/runtime.py b/kittycad/models/runtime.py index 5187c84b3..292b93de3 100644 --- a/kittycad/models/runtime.py +++ b/kittycad/models/runtime.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -E = TypeVar("E", bound="Runtime") +N = TypeVar("N", bound="Runtime") @attr.s(auto_attribs=True) @@ -33,7 +33,7 @@ class Runtime: return field_dict @classmethod - def from_dict(cls: Type[E], src_dict: Dict[str, Any]) -> E: + def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: d = src_dict.copy() path = d.pop("path", UNSET) diff --git a/kittycad/models/session.py b/kittycad/models/session.py index d1f271a1a..c336afa7e 100644 --- a/kittycad/models/session.py +++ b/kittycad/models/session.py @@ -7,7 +7,7 @@ from dateutil.parser import isoparse from ..models.uuid import Uuid from ..types import UNSET, Unset -D = TypeVar("D", bound="Session") +N = TypeVar("N", bound="Session") @attr.s(auto_attribs=True) @@ -58,7 +58,7 @@ class Session: return field_dict @classmethod - def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D: + def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: d = src_dict.copy() _created_at = d.pop("created_at", UNSET) created_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/system_info_default_address_pools.py b/kittycad/models/system_info_default_address_pools.py index 635daf8dd..a8eb9d9c8 100644 --- a/kittycad/models/system_info_default_address_pools.py +++ b/kittycad/models/system_info_default_address_pools.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -Y = TypeVar("Y", bound="SystemInfoDefaultAddressPools") +H = TypeVar("H", bound="SystemInfoDefaultAddressPools") @attr.s(auto_attribs=True) @@ -29,7 +29,7 @@ class SystemInfoDefaultAddressPools: 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() base = d.pop("base", UNSET) diff --git a/kittycad/models/unit_angle_conversion.py b/kittycad/models/unit_angle_conversion.py index 1c7e7a770..dd68bf55e 100644 --- a/kittycad/models/unit_angle_conversion.py +++ b/kittycad/models/unit_angle_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_angle import UnitAngle from ..models.uuid import Uuid from ..types import UNSET, Unset -Y = TypeVar("Y", bound="UnitAngleConversion") +V = TypeVar("V", bound="UnitAngleConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitAngleConversion: return field_dict @classmethod - def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: + 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] @@ -119,7 +119,7 @@ class UnitAngleConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitAngle(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitAngleConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitAngle(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitAngleConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_area_conversion.py b/kittycad/models/unit_area_conversion.py index 0a4459afc..00282521e 100644 --- a/kittycad/models/unit_area_conversion.py +++ b/kittycad/models/unit_area_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_area import UnitArea from ..models.uuid import Uuid from ..types import UNSET, Unset -D = TypeVar("D", bound="UnitAreaConversion") +E = TypeVar("E", bound="UnitAreaConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitAreaConversion: return field_dict @classmethod - def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D: + 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] @@ -119,7 +119,7 @@ class UnitAreaConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitArea(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitAreaConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitArea(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitAreaConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_current_conversion.py b/kittycad/models/unit_current_conversion.py index c974ce37e..585a00344 100644 --- a/kittycad/models/unit_current_conversion.py +++ b/kittycad/models/unit_current_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_current import UnitCurrent from ..models.uuid import Uuid from ..types import UNSET, Unset -F = TypeVar("F", bound="UnitCurrentConversion") +T = TypeVar("T", bound="UnitCurrentConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitCurrentConversion: return field_dict @classmethod - def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: + 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] @@ -119,7 +119,7 @@ class UnitCurrentConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitCurrent(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitCurrentConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitCurrent(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitCurrentConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_energy_conversion.py b/kittycad/models/unit_energy_conversion.py index e42e05140..cf527d19f 100644 --- a/kittycad/models/unit_energy_conversion.py +++ b/kittycad/models/unit_energy_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_energy import UnitEnergy from ..models.uuid import Uuid from ..types import UNSET, Unset -Z = TypeVar("Z", bound="UnitEnergyConversion") +Q = TypeVar("Q", bound="UnitEnergyConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitEnergyConversion: return field_dict @classmethod - def from_dict(cls: Type[Z], src_dict: Dict[str, Any]) -> Z: + 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] @@ -119,7 +119,7 @@ class UnitEnergyConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitEnergy(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitEnergyConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitEnergy(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitEnergyConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_force_conversion.py b/kittycad/models/unit_force_conversion.py index 829c640b0..01c43b698 100644 --- a/kittycad/models/unit_force_conversion.py +++ b/kittycad/models/unit_force_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_force import UnitForce from ..models.uuid import Uuid from ..types import UNSET, Unset -G = TypeVar("G", bound="UnitForceConversion") +F = TypeVar("F", bound="UnitForceConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitForceConversion: return field_dict @classmethod - def from_dict(cls: Type[G], src_dict: Dict[str, Any]) -> G: + 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] @@ -119,7 +119,7 @@ class UnitForceConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitForce(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitForceConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitForce(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitForceConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_frequency_conversion.py b/kittycad/models/unit_frequency_conversion.py index a55be7993..064802b64 100644 --- a/kittycad/models/unit_frequency_conversion.py +++ b/kittycad/models/unit_frequency_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_frequency import UnitFrequency from ..models.uuid import Uuid from ..types import UNSET, Unset -L = TypeVar("L", bound="UnitFrequencyConversion") +D = TypeVar("D", bound="UnitFrequencyConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitFrequencyConversion: 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() _completed_at = d.pop("completed_at", UNSET) completed_at: Union[Unset, datetime.datetime] @@ -119,7 +119,7 @@ class UnitFrequencyConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitFrequency(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitFrequencyConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitFrequency(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitFrequencyConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_length_conversion.py b/kittycad/models/unit_length_conversion.py index 259b4bc02..981fcf199 100644 --- a/kittycad/models/unit_length_conversion.py +++ b/kittycad/models/unit_length_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_length import UnitLength from ..models.uuid import Uuid from ..types import UNSET, Unset -N = TypeVar("N", bound="UnitLengthConversion") +J = TypeVar("J", bound="UnitLengthConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitLengthConversion: return field_dict @classmethod - def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + 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] @@ -119,7 +119,7 @@ class UnitLengthConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitLength(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitLengthConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitLength(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitLengthConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_mass_conversion.py b/kittycad/models/unit_mass_conversion.py index e5625aa6d..97a1a3f77 100644 --- a/kittycad/models/unit_mass_conversion.py +++ b/kittycad/models/unit_mass_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_mass import UnitMass from ..models.uuid import Uuid from ..types import UNSET, Unset -N = TypeVar("N", bound="UnitMassConversion") +F = TypeVar("F", bound="UnitMassConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitMassConversion: return field_dict @classmethod - def from_dict(cls: Type[N], src_dict: Dict[str, Any]) -> N: + 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] @@ -119,7 +119,7 @@ class UnitMassConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitMass(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitMassConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitMass(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitMassConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_power_conversion.py b/kittycad/models/unit_power_conversion.py index 073163323..0d5544499 100644 --- a/kittycad/models/unit_power_conversion.py +++ b/kittycad/models/unit_power_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_power import UnitPower from ..models.uuid import Uuid from ..types import UNSET, Unset -H = TypeVar("H", bound="UnitPowerConversion") +V = TypeVar("V", bound="UnitPowerConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitPowerConversion: return field_dict @classmethod - def from_dict(cls: Type[H], src_dict: Dict[str, Any]) -> H: + 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] @@ -119,7 +119,7 @@ class UnitPowerConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitPower(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitPowerConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitPower(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitPowerConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_pressure_conversion.py b/kittycad/models/unit_pressure_conversion.py index e106a5af4..8ae078a5f 100644 --- a/kittycad/models/unit_pressure_conversion.py +++ b/kittycad/models/unit_pressure_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_pressure import UnitPressure from ..models.uuid import Uuid from ..types import UNSET, Unset -V = TypeVar("V", bound="UnitPressureConversion") +U = TypeVar("U", bound="UnitPressureConversion") @attr.s(auto_attribs=True) @@ -87,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[U], src_dict: Dict[str, Any]) -> U: d = src_dict.copy() _completed_at = d.pop("completed_at", UNSET) completed_at: Union[Unset, datetime.datetime] @@ -119,7 +119,7 @@ class UnitPressureConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitPressure(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitPressureConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitPressure(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitPressureConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_temperature_conversion.py b/kittycad/models/unit_temperature_conversion.py index 9e3e9958b..32fb28cbb 100644 --- a/kittycad/models/unit_temperature_conversion.py +++ b/kittycad/models/unit_temperature_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_temperature import UnitTemperature from ..models.uuid import Uuid from ..types import UNSET, Unset -E = TypeVar("E", bound="UnitTemperatureConversion") +F = TypeVar("F", bound="UnitTemperatureConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitTemperatureConversion: 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] @@ -119,7 +119,7 @@ class UnitTemperatureConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitTemperature(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitTemperatureConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitTemperature(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitTemperatureConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_torque_conversion.py b/kittycad/models/unit_torque_conversion.py index a4f0b4407..085c40eee 100644 --- a/kittycad/models/unit_torque_conversion.py +++ b/kittycad/models/unit_torque_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_torque import UnitTorque from ..models.uuid import Uuid from ..types import UNSET, Unset -T = TypeVar("T", bound="UnitTorqueConversion") +Y = TypeVar("Y", bound="UnitTorqueConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitTorqueConversion: 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() _completed_at = d.pop("completed_at", UNSET) completed_at: Union[Unset, datetime.datetime] @@ -119,7 +119,7 @@ class UnitTorqueConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitTorque(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitTorqueConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitTorque(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitTorqueConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/unit_volume_conversion.py b/kittycad/models/unit_volume_conversion.py index 7d1ae4146..d1423905d 100644 --- a/kittycad/models/unit_volume_conversion.py +++ b/kittycad/models/unit_volume_conversion.py @@ -9,7 +9,7 @@ from ..models.unit_volume import UnitVolume from ..models.uuid import Uuid from ..types import UNSET, Unset -Q = TypeVar("Q", bound="UnitVolumeConversion") +F = TypeVar("F", bound="UnitVolumeConversion") @attr.s(auto_attribs=True) @@ -87,7 +87,7 @@ class UnitVolumeConversion: return field_dict @classmethod - def from_dict(cls: Type[Q], src_dict: Dict[str, Any]) -> Q: + 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] @@ -119,7 +119,7 @@ class UnitVolumeConversion: if isinstance(_input_unit, Unset): input_unit = UNSET else: - input_unit = UnitVolume(_input_unit) + input_unit = _input_unit # type: ignore[arg-type] output = d.pop("output", UNSET) @@ -128,7 +128,7 @@ class UnitVolumeConversion: if isinstance(_output_unit, Unset): output_unit = UNSET else: - output_unit = UnitVolume(_output_unit) + output_unit = _output_unit # type: ignore[arg-type] _started_at = d.pop("started_at", UNSET) started_at: Union[Unset, datetime.datetime] @@ -142,7 +142,7 @@ class UnitVolumeConversion: if isinstance(_status, Unset): status = UNSET else: - status = ApiCallStatus(_status) + status = _status # type: ignore[arg-type] _updated_at = d.pop("updated_at", UNSET) updated_at: Union[Unset, datetime.datetime] diff --git a/kittycad/models/update_user.py b/kittycad/models/update_user.py index 5cc6c3e89..dd73a570a 100644 --- a/kittycad/models/update_user.py +++ b/kittycad/models/update_user.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -F = TypeVar("F", bound="UpdateUser") +P = TypeVar("P", bound="UpdateUser") @attr.s(auto_attribs=True) @@ -47,7 +47,7 @@ class UpdateUser: 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() company = d.pop("company", UNSET) diff --git a/kittycad/models/user.py b/kittycad/models/user.py index 35f27da2d..911f76987 100644 --- a/kittycad/models/user.py +++ b/kittycad/models/user.py @@ -6,7 +6,7 @@ from dateutil.parser import isoparse from ..types import UNSET, Unset -D = TypeVar("D", bound="User") +Y = TypeVar("Y", bound="User") @attr.s(auto_attribs=True) @@ -83,7 +83,7 @@ class User: return field_dict @classmethod - def from_dict(cls: Type[D], src_dict: Dict[str, Any]) -> D: + def from_dict(cls: Type[Y], src_dict: Dict[str, Any]) -> Y: d = src_dict.copy() company = d.pop("company", UNSET) diff --git a/kittycad/models/user_results_page.py b/kittycad/models/user_results_page.py index 4e461d8f1..46a97ea68 100644 --- a/kittycad/models/user_results_page.py +++ b/kittycad/models/user_results_page.py @@ -4,7 +4,7 @@ import attr from ..types import UNSET, Unset -J = TypeVar("J", bound="UserResultsPage") +L = TypeVar("L", bound="UserResultsPage") @attr.s(auto_attribs=True) @@ -37,7 +37,7 @@ class UserResultsPage: return field_dict @classmethod - def from_dict(cls: Type[J], src_dict: Dict[str, Any]) -> J: + def from_dict(cls: Type[L], src_dict: Dict[str, Any]) -> L: d = src_dict.copy() from ..models.user import User diff --git a/kittycad/models/verification_token.py b/kittycad/models/verification_token.py index bde780e29..fec249380 100644 --- a/kittycad/models/verification_token.py +++ b/kittycad/models/verification_token.py @@ -6,7 +6,7 @@ from dateutil.parser import isoparse from ..types import UNSET, Unset -F = TypeVar("F", bound="VerificationToken") +K = TypeVar("K", bound="VerificationToken") @attr.s(auto_attribs=True) @@ -53,7 +53,7 @@ class VerificationToken: return field_dict @classmethod - def from_dict(cls: Type[F], src_dict: Dict[str, Any]) -> F: + def from_dict(cls: Type[K], src_dict: Dict[str, Any]) -> K: d = src_dict.copy() _created_at = d.pop("created_at", UNSET) created_at: Union[Unset, datetime.datetime] diff --git a/spec.json b/spec.json index 4eabfb9ea..4fb906680 100644 --- a/spec.json +++ b/spec.json @@ -1284,6 +1284,32 @@ ], "type": "object" }, + "CameraDragInteractionType": { + "description": "The type of camera drag interaction.", + "oneOf": [ + { + "description": "Camera pan", + "enum": [ + "pan" + ], + "type": "string" + }, + { + "description": "Camera rotate (revolve/orbit)", + "enum": [ + "rotate" + ], + "type": "string" + }, + { + "description": "Camera zoom (increase or decrease distance to reference point center)", + "enum": [ + "zoom" + ], + "type": "string" + } + ] + }, "CardDetails": { "description": "The card details of a payment method.", "properties": { @@ -1374,12 +1400,29 @@ }, "CodeLanguage": { "description": "The language code is written in.", - "enum": [ - "go", - "python", - "node" - ], - "type": "string" + "oneOf": [ + { + "description": "The `go` programming language.", + "enum": [ + "go" + ], + "type": "string" + }, + { + "description": "The `python` programming language.", + "enum": [ + "python" + ], + "type": "string" + }, + { + "description": "The `node` programming language.", + "enum": [ + "node" + ], + "type": "string" + } + ] }, "CodeOutput": { "description": "Output of the code being executed.", @@ -3497,6 +3540,34 @@ } ] }, + "Coupon": { + "description": "The resource representing a Coupon.", + "properties": { + "amount_off": { + "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.", + "format": "money-usd", + "nullable": true, + "title": "Number", + "type": "number" + }, + "deleted": { + "default": false, + "description": "Always true for a deleted object.", + "type": "boolean" + }, + "id": { + "description": "Unique identifier for the object.", + "type": "string" + }, + "percent_off": { + "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.\n\nFor example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.", + "format": "double", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, "CreatedAtSortMode": { "description": "Supported set of sort modes for scanning by created_at only.\n\nCurrently, we only support scanning in ascending order.", "oneOf": [ @@ -4685,6 +4756,23 @@ ], "type": "object" }, + "Discount": { + "description": "The resource representing a Discount.", + "properties": { + "coupon": { + "allOf": [ + { + "$ref": "#/components/schemas/Coupon" + } + ], + "description": "The coupon that applied to create this discount." + } + }, + "required": [ + "coupon" + ], + "type": "object" + }, "DockerSystemInfo": { "description": "Docker system info.", "properties": { @@ -5306,6 +5394,10 @@ "Extrude": { "description": "Command for extruding a solid.", "properties": { + "cap": { + "description": "Whether to cap the extrusion with a face, or not. If true, the resulting solid will be closed on all sides, like a dice. If false, it will be open on one side, like a drinking glass.", + "type": "boolean" + }, "distance": { "description": "How far off the plane to extrude", "format": "double", @@ -5317,10 +5409,11 @@ "$ref": "#/components/schemas/ModelingCmdId" } ], - "description": "Which sketch to extrude" + "description": "Which sketch to extrude. Must be a closed 2D solid." } }, "required": [ + "cap", "distance", "target" ], @@ -6091,6 +6184,13 @@ "description": "Description of the invoice.", "type": "string" }, + "discounts": { + "description": "The discounts applied to the invoice. This is an array of discount objects.", + "items": { + "$ref": "#/components/schemas/Discount" + }, + "type": "array" + }, "id": { "description": "Unique identifier for the object.", "type": "string" @@ -6454,32 +6554,6 @@ }, "type": "object" }, - "Line3d": { - "description": "Command for adding a line.", - "properties": { - "from": { - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ], - "description": "Start of the line" - }, - "to": { - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ], - "description": "End of the line" - } - }, - "required": [ - "from", - "to" - ], - "type": "object" - }, "Mesh": { "properties": { "mesh": { @@ -6667,22 +6741,86 @@ "ModelingCmd": { "description": "Commands that the KittyCAD engine can execute.", "oneOf": [ + { + "description": "Start a path.", + "enum": [ + "StartPath" + ], + "type": "string" + }, { "additionalProperties": false, - "description": "Add a line", + "description": "Move the path's \"pen\".", "properties": { - "AddLine": { - "$ref": "#/components/schemas/Line3d" + "MovePathPen": { + "properties": { + "path": { + "allOf": [ + { + "$ref": "#/components/schemas/ModelingCmdId" + } + ], + "description": "The ID of the command which created the path." + }, + "to": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "Where the path's pen should be." + } + }, + "required": [ + "path", + "to" + ], + "type": "object" } }, "required": [ - "AddLine" + "MovePathPen" ], "type": "object" }, { "additionalProperties": false, - "description": "Extrude a solid", + "description": "Extend a path by adding a new segment which starts at the path's \"pen\". If no \"pen\" location has been set before (via `MovePen`), then the pen is at the origin.", + "properties": { + "ExtendPath": { + "properties": { + "path": { + "allOf": [ + { + "$ref": "#/components/schemas/ModelingCmdId" + } + ], + "description": "The ID of the command which created the path." + }, + "segment": { + "allOf": [ + { + "$ref": "#/components/schemas/PathSegment" + } + ], + "description": "Segment to append to the path. This segment will implicitly begin at the current \"pen\" location." + } + }, + "required": [ + "path", + "segment" + ], + "type": "object" + } + }, + "required": [ + "ExtendPath" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Extrude a 2D solid.", "properties": { "Extrude": { "$ref": "#/components/schemas/Extrude" @@ -6695,27 +6833,136 @@ }, { "additionalProperties": false, - "description": "Mouse clicked on the engine window, trying to select some surface.", + "description": "Closes a path, converting it to a 2D solid.", "properties": { - "SelectionClick": { + "ClosePath": { "properties": { - "at": { - "allOf": [ - { - "$ref": "#/components/schemas/Point2d" - } - ], - "description": "Where the mouse was clicked. TODO engine#1035: Choose a coordinate system for this." + "path_id": { + "description": "Which path to close.", + "format": "uuid", + "type": "string" } }, "required": [ - "at" + "path_id" ], "type": "object" } }, "required": [ - "SelectionClick" + "ClosePath" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Camera drag started.", + "properties": { + "CameraDragStart": { + "properties": { + "interaction": { + "allOf": [ + { + "$ref": "#/components/schemas/CameraDragInteractionType" + } + ], + "description": "The type of camera drag interaction." + }, + "window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "The initial mouse position." + } + }, + "required": [ + "interaction", + "window" + ], + "type": "object" + } + }, + "required": [ + "CameraDragStart" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Camera drag continued.", + "properties": { + "CameraDragMove": { + "properties": { + "interaction": { + "allOf": [ + { + "$ref": "#/components/schemas/CameraDragInteractionType" + } + ], + "description": "The type of camera drag interaction." + }, + "sequence": { + "description": "Logical timestamp. The client should increment this with every event in the current mouse drag. That way, if the events are being sent over an unordered channel, the API can ignore the older events.", + "format": "uint32", + "minimum": 0, + "nullable": true, + "type": "integer" + }, + "window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "The current mouse position." + } + }, + "required": [ + "interaction", + "window" + ], + "type": "object" + } + }, + "required": [ + "CameraDragMove" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Camera drag ended.", + "properties": { + "CameraDragEnd": { + "properties": { + "interaction": { + "allOf": [ + { + "$ref": "#/components/schemas/CameraDragInteractionType" + } + ], + "description": "The type of camera drag interaction." + }, + "window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "The final mouse position." + } + }, + "required": [ + "interaction", + "window" + ], + "type": "object" + } + }, + "required": [ + "CameraDragEnd" ], "type": "object" } @@ -6985,6 +7232,125 @@ }, "type": "object" }, + "PathSegment": { + "description": "A segment of a path. Paths are composed of many segments.", + "oneOf": [ + { + "additionalProperties": false, + "description": "A straight line segment. Goes from the current path \"pen\" to the given endpoint.", + "properties": { + "Line": { + "properties": { + "end": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "End point of the line." + } + }, + "required": [ + "end" + ], + "type": "object" + } + }, + "required": [ + "Line" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "A circular arc segment.", + "properties": { + "Arc": { + "properties": { + "angle_end": { + "description": "Start of the arc along circle's perimeter.", + "format": "float", + "type": "number" + }, + "angle_start": { + "description": "Start of the arc along circle's perimeter.", + "format": "float", + "type": "number" + }, + "center": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "Center of the circle" + }, + "radius": { + "description": "Radius of the circle", + "format": "float", + "type": "number" + } + }, + "required": [ + "angle_end", + "angle_start", + "center", + "radius" + ], + "type": "object" + } + }, + "required": [ + "Arc" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "A cubic bezier curve segment. Start at the end of the current line, go through control point 1 and 2, then end at a given point.", + "properties": { + "Bezier": { + "properties": { + "control1": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "First control point." + }, + "control2": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "Second control point." + }, + "end": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "Final control point." + } + }, + "required": [ + "control1", + "control2", + "end" + ], + "type": "object" + } + }, + "required": [ + "Bezier" + ], + "type": "object" + } + ] + }, "PaymentIntent": { "description": "A payment intent response.", "properties": { @@ -10525,7 +10891,9 @@ "api-calls", "hidden" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/api-calls/{id}": { @@ -10947,7 +11315,9 @@ "api-calls", "hidden" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/async/operations/{id}": { @@ -14885,7 +15255,9 @@ "tags": [ "api-calls" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/user/api-calls/{id}": { @@ -15050,7 +15422,9 @@ "tags": [ "api-tokens" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } }, "options": { "description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.", @@ -16528,7 +16902,9 @@ "users", "hidden" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/users-extended": { @@ -16621,7 +16997,9 @@ "users", "hidden" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/users-extended/{id}": { @@ -16871,7 +17249,9 @@ "api-calls", "hidden" ], - "x-dropshot-pagination": true + "x-dropshot-pagination": { + "required": [] + } } }, "/ws/executor/term": {