kittycad.models.modeling_cmd

Classes

camera_drag_end(**data)

Camera drag ended

camera_drag_move(**data)

Camera drag continued.

camera_drag_start(**data)

Camera drag started.

center_of_mass(**data)

Get the center of mass of entities in the scene or the default scene.

close_path(**data)

Closes a path, converting it to a 2D solid.

curve_get_control_points(**data)

Get control points of the given curve.

curve_get_end_points(**data)

Find the start and end of a curve.

curve_get_type(**data)

Get type of the given curve.

curve_set_constraint(**data)

Get the plane for sketch mode.

default_camera_focus_on(**data)

Focus the default camera upon an object in the scene.

default_camera_get_settings(**data)

Gets the default camera's camera settings

default_camera_look_at(**data)

Change what the default camera is looking at.

default_camera_perspective_settings(**data)

Change what the default camera is looking at.

default_camera_set_orthographic(**data)

Use orthographic projection.

default_camera_set_perspective(**data)

Use perspective projection.

default_camera_zoom(**data)

Adjust zoom of the default camera.

density(**data)

Get the density of entities in the scene or the default scene.

edge_lines_visible(**data)

Changes visibility of scene-wide edge lines on brep solids

edit_mode_enter(**data)

Enter edit mode

edit_mode_exit(**data)

Exit edit mode

enable_sketch_mode(**data)

Sketch on some entity (e.g. a plane, a face).

entity_circular_pattern(**data)

Create a circular pattern using this entity.

entity_fade(**data)

Fade entity in or out.

entity_get_all_child_uuids(**data)

What are all UUIDs of this entity's children?

entity_get_child_uuid(**data)

What is the UUID of this entity's n-th child?

entity_get_distance(**data)

What is the distance between these two entities?

entity_get_num_children(**data)

How many children does the entity have?

entity_get_parent_id(**data)

What is this entity's parent?

entity_get_sketch_paths(**data)

What are all UUIDs of all the paths sketched on top of this entity?

entity_linear_pattern(**data)

Create a linear pattern using this entity.

entity_linear_pattern_transform(**data)

Create a pattern using this entity by specifying the transform for each desired repetition.

entity_make_helix(**data)

Create a helix using the input cylinder and other specified parameters.

entity_mirror(**data)

Mirror the input entities over the specified axis.

entity_mirror_across_edge(**data)

Mirror the input entities over the specified edge.

entity_set_opacity(**data)

Set opacity of the entity.

export(**data)

Export the scene to a file.

extend_path(**data)

Extend a path by adding a new segment which starts at the path's "pen".

extrude(**data)

Command for extruding a solid 2d.

face_get_center(**data)

Obtains the surface "center of mass"

face_get_gradient(**data)

Determines the gradient (dFdu, dFdv) + normal vector on a brep face evaluated by parameters u,v

face_get_position(**data)

Determines a position on a brep face evaluated by parameters u,v

face_is_planar(**data)

Determines whether a brep face is planar and returns its surface-local planar axes if so

get_entity_type(**data)

What type of entity is this?

get_num_objects(**data)

Get the number of objects in the scene

get_sketch_mode_plane(**data)

Get the plane for sketch mode.

handle_mouse_drag_end(**data)

Stop dragging the mouse.

handle_mouse_drag_move(**data)

Continue dragging the mouse.

handle_mouse_drag_start(**data)

Start dragging the mouse.

highlight_set_entities(**data)

Changes the current highlighted entity to these entities.

highlight_set_entity(**data)

Changes the current highlighted entity to whichever one is at the given window coordinate.

import_files(**data)

Import files to the current model.

make_axes_gizmo(**data)

Add a gizmo showing the axes.

make_plane(**data)

Make a new plane

mass(**data)

Get the mass of entities in the scene or the default scene.

mouse_click(**data)

Send a mouse click event Updates modified/selected entities.

mouse_move(**data)

Send a mouse move event

move_path_pen(**data)

Move the path's "pen".

new_annotation(**data)

Create a new annotation

object_bring_to_front(**data)

Bring an object to the front of the scene

object_set_material_params_pbr(**data)

Set the material properties of an object

object_visible(**data)

Hide or show an object

path_get_curve_uuid(**data)

Obtain curve id by index

path_get_curve_uuids_for_vertices(**data)

Obtain curve ids for vertex ids

path_get_info(**data)

Query the given path.

path_get_sketch_target_uuid(**data)

Obtain the sketch target id (if the path was drawn in sketchmode) for a path

path_get_vertex_uuids(**data)

Obtain vertex ids for a path

plane_intersect_and_project(**data)

Utility method.

plane_set_color(**data)

Set the color of a plane.

reconfigure_stream(**data)

Reconfigure the stream.

remove_scene_objects(**data)

Remove scene objects.

revolve(**data)

Command for revolving a solid 2d.

revolve_about_edge(**data)

Command for revolving a solid 2d about a brep edge

scene_clear_all(**data)

Removes all of the Objects in the scene

select_add(**data)

Adds one or more entities (by UUID) to the selection.

select_clear(**data)

Clear the selection

select_get(**data)

Find all IDs of selected entities

select_remove(**data)

Removes one or more entities (by UUID) from the selection.

select_replace(**data)

Replaces current selection with these entities (by UUID).

select_with_point(**data)

Modifies the selection by simulating a "mouse click" at the given x,y window coordinate Returns ID of whatever was selected.

send_object(**data)

Send object to front or back.

set_background_color(**data)

Set the background color of the scene.

set_current_tool_properties(**data)

Set the properties of the tool lines for the scene.

set_default_system_properties(**data)

Set the default system properties used when a specific property isn't set.

set_scene_units(**data)

Set the units of the scene.

set_selection_filter(**data)

What kind of entities can be selected?

set_selection_type(**data)

When you select some entity with the current tool, what should happen to the entity?

set_tool(**data)

Set the current tool.

sketch_mode_disable(**data)

Disable sketch mode.

solid2d_add_hole(**data)

Add a hole to a Solid2d object before extruding it.

solid3d_fillet_edge(**data)

Fillets the given edge with the specified radius.

solid3d_get_all_edge_faces(**data)

Gets all faces which use the given edge.

solid3d_get_all_opposite_edges(**data)

Gets all edges which are opposite the given edge, across all possible faces.

solid3d_get_extrusion_face_info(**data)

Get a concise description of all of an extrusion's faces.

solid3d_get_next_adjacent_edge(**data)

Gets the next adjacent edge for the given edge, along the given face.

solid3d_get_opposite_edge(**data)

Gets the edge opposite the given edge, along the given face.

solid3d_get_prev_adjacent_edge(**data)

Gets the previous adjacent edge for the given edge, along the given face.

solid3d_shell_face(**data)

Command for revolving a solid 2d.

start_path(**data)

Start a new path.

surface_area(**data)

Get the surface area of entities in the scene or the default scene.

take_snapshot(**data)

Take a snapshot of the current view.

update_annotation(**data)

Update an annotation

view_isometric(**data)

Fit the view to the scene with an isometric view.

volume(**data)

Get the volume of entities in the scene or the default scene.

zoom_to_fit(**data)

Fit the view to the specified object(s).

class kittycad.models.modeling_cmd.camera_drag_end(**data)[source][source]

Camera drag ended

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'interaction': <enum 'CameraDragInteractionType'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['camera_drag_end'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.camera_drag_end'>, 'config': {'title': 'camera_drag_end'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.camera_drag_end'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.camera_drag_end'>>]}, 'ref': 'kittycad.models.modeling_cmd.camera_drag_end:93929007433840', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'interaction': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'CameraDragInteractionType'>, 'members': [CameraDragInteractionType.PAN, CameraDragInteractionType.ROTATE, CameraDragInteractionType.ZOOM], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.camera_drag_interaction_type.CameraDragInteractionType:93929001563968', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'camera_drag_end', 'schema': {'expected': ['camera_drag_end'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'camera_drag_end', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1f4870,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df29d070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "camera_drag_end",                                             },                                             expected_py: None,                                             name: "literal['camera_drag_end']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "interaction": SerField {                         key_py: Py(                             0x00007f80f07dd230,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cc5b740,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "camera_drag_end",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="camera_drag_end", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "interaction",                         lookup_key: Simple {                             key: "interaction",                             py_key: Py(                                 0x00007f80de4830b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "interaction",                                         Py(                                             0x00007f80de446270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f07dd230,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cc5b740,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "pan": 0,                                             "rotate": 1,                                             "zoom": 2,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79e450,                                         ),                                         Py(                                             0x00007f80de79e510,                                         ),                                         Py(                                             0x00007f80de79e570,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'pan', 'rotate' or 'zoom'",                                 strict: false,                                 class_repr: "CameraDragInteractionType",                                 name: "str-enum[CameraDragInteractionType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4c66a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4c6430,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df29d070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "camera_drag_end": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df29d070,                                                 ),                                             ],                                         },                                         expected_repr: "'camera_drag_end'",                                         name: "literal['camera_drag_end']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['camera_drag_end']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de4c6460,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de4c63d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de452f40,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de452f40,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "camera_drag_end",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1f4870,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "camera_drag_end",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, interaction: kittycad.models.camera_drag_interaction_type.CameraDragInteractionType, type: Literal['camera_drag_end'] = 'camera_drag_end', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

interaction: CameraDragInteractionType[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'interaction': FieldInfo(annotation=CameraDragInteractionType, required=True), 'type': FieldInfo(annotation=Literal['camera_drag_end'], required=False, default='camera_drag_end'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['camera_drag_end'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.camera_drag_move(**data)[source][source]

Camera drag continued.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'interaction': <enum 'CameraDragInteractionType'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'sequence': typing.Optional[int], 'type': typing.Literal['camera_drag_move'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.camera_drag_move'>, 'config': {'title': 'camera_drag_move'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.camera_drag_move'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.camera_drag_move'>>]}, 'ref': 'kittycad.models.modeling_cmd.camera_drag_move:93929007416304', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'interaction': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'CameraDragInteractionType'>, 'members': [CameraDragInteractionType.PAN, CameraDragInteractionType.ROTATE, CameraDragInteractionType.ZOOM], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.camera_drag_interaction_type.CameraDragInteractionType:93929001563968', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'camera_drag_move', 'schema': {'expected': ['camera_drag_move'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'camera_drag_move', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1f03f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df29e470,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "camera_drag_move",                                             },                                             expected_py: None,                                             name: "literal['camera_drag_move']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "interaction": SerField {                         key_py: Py(                             0x00007f80f07dd230,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cc5b740,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "camera_drag_move",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="camera_drag_move", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "interaction",                         lookup_key: Simple {                             key: "interaction",                             py_key: Py(                                 0x00007f80de4478b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "interaction",                                         Py(                                             0x00007f80de451bb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f07dd230,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cc5b740,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "pan": 0,                                             "rotate": 1,                                             "zoom": 2,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79e450,                                         ),                                         Py(                                             0x00007f80de79e510,                                         ),                                         Py(                                             0x00007f80de79e570,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'pan', 'rotate' or 'zoom'",                                 strict: false,                                 class_repr: "CameraDragInteractionType",                                 name: "str-enum[CameraDragInteractionType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de4501b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de451eb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4e44b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4e4a50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df29e470,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "camera_drag_move": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df29e470,                                                 ),                                             ],                                         },                                         expected_repr: "'camera_drag_move'",                                         name: "literal['camera_drag_move']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['camera_drag_move']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de4e4ab0,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de4e4ae0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de452000,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de452000,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "camera_drag_move",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1f03f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "camera_drag_move",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, interaction: kittycad.models.camera_drag_interaction_type.CameraDragInteractionType, sequence: Optional[int] = None, type: Literal['camera_drag_move'] = 'camera_drag_move', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

interaction: CameraDragInteractionType[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'interaction': FieldInfo(annotation=CameraDragInteractionType, required=True), 'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['camera_drag_move'], required=False, default='camera_drag_move'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

sequence: Optional[int][source]
type: Literal['camera_drag_move'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.camera_drag_start(**data)[source][source]

Camera drag started.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'interaction': <enum 'CameraDragInteractionType'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['camera_drag_start'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.camera_drag_start'>, 'config': {'title': 'camera_drag_start'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.camera_drag_start'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.camera_drag_start'>>]}, 'ref': 'kittycad.models.modeling_cmd.camera_drag_start:93929007406368', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'interaction': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'CameraDragInteractionType'>, 'members': [CameraDragInteractionType.PAN, CameraDragInteractionType.ROTATE, CameraDragInteractionType.ZOOM], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.camera_drag_interaction_type.CameraDragInteractionType:93929001563968', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'camera_drag_start', 'schema': {'expected': ['camera_drag_start'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'camera_drag_start', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1edd20,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "interaction": SerField {                         key_py: Py(                             0x00007f80f07dd230,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cc5b740,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4805b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "camera_drag_start",                                             },                                             expected_py: None,                                             name: "literal['camera_drag_start']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "camera_drag_start",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="camera_drag_start", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "interaction",                         lookup_key: Simple {                             key: "interaction",                             py_key: Py(                                 0x00007f80de447970,                             ),                             path: LookupPath(                                 [                                     S(                                         "interaction",                                         Py(                                             0x00007f80de4478f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f07dd230,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cc5b740,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "zoom": 2,                                             "rotate": 1,                                             "pan": 0,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79e450,                                         ),                                         Py(                                             0x00007f80de79e510,                                         ),                                         Py(                                             0x00007f80de79e570,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'pan', 'rotate' or 'zoom'",                                 strict: false,                                 class_repr: "CameraDragInteractionType",                                 name: "str-enum[CameraDragInteractionType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de496580,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4965b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4805b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "camera_drag_start": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4805b0,                                                 ),                                             ],                                         },                                         expected_repr: "'camera_drag_start'",                                         name: "literal['camera_drag_start']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['camera_drag_start']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de496310,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de496340,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de478740,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de478740,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "camera_drag_start",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1edd20,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "camera_drag_start",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, interaction: kittycad.models.camera_drag_interaction_type.CameraDragInteractionType, type: Literal['camera_drag_start'] = 'camera_drag_start', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

interaction: CameraDragInteractionType[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'interaction': FieldInfo(annotation=CameraDragInteractionType, required=True), 'type': FieldInfo(annotation=Literal['camera_drag_start'], required=False, default='camera_drag_start'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['camera_drag_start'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.center_of_mass(**data)[source][source]

Get the center of mass of entities in the scene or the default scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'output_unit': <enum 'UnitLength'>, 'type': typing.Literal['center_of_mass']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.center_of_mass'>, 'config': {'title': 'center_of_mass'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.center_of_mass'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.center_of_mass'>>]}, 'ref': 'kittycad.models.modeling_cmd.center_of_mass:93929008985856', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'output_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitLength'>, 'members': [UnitLength.CM, UnitLength.FT, UnitLength.IN, UnitLength.M, UnitLength.MM, UnitLength.YD], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'center_of_mass', 'schema': {'expected': ['center_of_mass'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'center_of_mass', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d36f700,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df29df30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "center_of_mass",                                             },                                             expected_py: None,                                             name: "literal['center_of_mass']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "output_unit": SerField {                         key_py: Py(                             0x00007f80dedc5eb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cf2e950,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "center_of_mass",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="center_of_mass", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de2b1730,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de2b1830,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "output_unit",                         lookup_key: Simple {                             key: "output_unit",                             py_key: Py(                                 0x00007f80de2b1a30,                             ),                             path: LookupPath(                                 [                                     S(                                         "output_unit",                                         Py(                                             0x00007f80de2b1870,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5eb0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cf2e950,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "mm": 4,                                             "yd": 5,                                             "in": 2,                                             "m": 3,                                             "cm": 0,                                             "ft": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80dee79af0,                                         ),                                         Py(                                             0x00007f80dee7a030,                                         ),                                         Py(                                             0x00007f80dee7a090,                                         ),                                         Py(                                             0x00007f80dee79fd0,                                         ),                                         Py(                                             0x00007f80dee7a1b0,                                         ),                                         Py(                                             0x00007f80dee7a270,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'cm', 'ft', 'in', 'm', 'mm' or 'yd'",                                 strict: false,                                 class_repr: "UnitLength",                                 name: "str-enum[UnitLength]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2c1500,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2c1710,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df29df30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "center_of_mass": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df29df30,                                                 ),                                             ],                                         },                                         expected_repr: "'center_of_mass'",                                         name: "literal['center_of_mass']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['center_of_mass']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "center_of_mass",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d36f700,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "center_of_mass",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], output_unit: kittycad.models.unit_length.UnitLength, type: Literal['center_of_mass'] = 'center_of_mass') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'output_unit': FieldInfo(annotation=UnitLength, required=True), 'type': FieldInfo(annotation=Literal['center_of_mass'], required=False, default='center_of_mass')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

output_unit: UnitLength[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['center_of_mass'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.close_path(**data)[source][source]

Closes a path, converting it to a 2D solid.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['close_path']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.close_path'>, 'config': {'title': 'close_path'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.close_path'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.close_path'>>]}, 'ref': 'kittycad.models.modeling_cmd.close_path:93929007387280', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'close_path', 'schema': {'expected': ['close_path'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'close_path', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1e9290,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df355230,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "close_path",                                             },                                             expected_py: None,                                             name: "literal['close_path']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "close_path",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="close_path", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de4c50e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de4c5110,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4c5140,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4c5170,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df355230,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "close_path": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df355230,                                                 ),                                             ],                                         },                                         expected_repr: "'close_path'",                                         name: "literal['close_path']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['close_path']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "close_path",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1e9290,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "close_path",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path_id: str, type: Literal['close_path'] = 'close_path') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['close_path'], required=False, default='close_path')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['close_path'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.curve_get_control_points(**data)[source][source]

Get control points of the given curve.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'curve_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['curve_get_control_points']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.curve_get_control_points'>, 'config': {'title': 'curve_get_control_points'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.curve_get_control_points'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.curve_get_control_points'>>]}, 'ref': 'kittycad.models.modeling_cmd.curve_get_control_points:93929008638688', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'curve_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'curve_get_control_points', 'schema': {'expected': ['curve_get_control_points'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'curve_get_control_points', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d31aae0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "curve_id": SerField {                         key_py: Py(                             0x00007f80de5560b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df162740,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "curve_get_control_points",                                             },                                             expected_py: None,                                             name: "literal['curve_get_control_points']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "curve_get_control_points",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="curve_get_control_points", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "curve_id",                         lookup_key: Simple {                             key: "curve_id",                             py_key: Py(                                 0x00007f80de244730,                             ),                             path: LookupPath(                                 [                                     S(                                         "curve_id",                                         Py(                                             0x00007f80de2446f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de5560b0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de240570,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2405a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df162740,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "curve_get_control_points": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df162740,                                                 ),                                             ],                                         },                                         expected_repr: "'curve_get_control_points'",                                         name: "literal['curve_get_control_points']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['curve_get_control_points']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "curve_get_control_points",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d31aae0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "curve_get_control_points",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, curve_id: str, type: Literal['curve_get_control_points'] = 'curve_get_control_points') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

curve_id: str[source]
dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'curve_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['curve_get_control_points'], required=False, default='curve_get_control_points')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['curve_get_control_points'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.curve_get_end_points(**data)[source][source]

Find the start and end of a curve.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'curve_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['curve_get_end_points']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.curve_get_end_points'>, 'config': {'title': 'curve_get_end_points'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.curve_get_end_points'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.curve_get_end_points'>>]}, 'ref': 'kittycad.models.modeling_cmd.curve_get_end_points:93929008822640', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'curve_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'curve_get_end_points', 'schema': {'expected': ['curve_get_end_points'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'curve_get_end_points', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d347970,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df356130,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "curve_get_end_points",                                             },                                             expected_py: None,                                             name: "literal['curve_get_end_points']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "curve_id": SerField {                         key_py: Py(                             0x00007f80de5560b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "curve_get_end_points",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="curve_get_end_points", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "curve_id",                         lookup_key: Simple {                             key: "curve_id",                             py_key: Py(                                 0x00007f80de284a70,                             ),                             path: LookupPath(                                 [                                     S(                                         "curve_id",                                         Py(                                             0x00007f80de284b70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de5560b0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de28cea0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de28ced0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df356130,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "curve_get_end_points": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df356130,                                                 ),                                             ],                                         },                                         expected_repr: "'curve_get_end_points'",                                         name: "literal['curve_get_end_points']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['curve_get_end_points']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "curve_get_end_points",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d347970,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "curve_get_end_points",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, curve_id: str, type: Literal['curve_get_end_points'] = 'curve_get_end_points') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

curve_id: str[source]
dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'curve_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['curve_get_end_points'], required=False, default='curve_get_end_points')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['curve_get_end_points'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.curve_get_type(**data)[source][source]

Get type of the given curve.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'curve_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['curve_get_type']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.curve_get_type'>, 'config': {'title': 'curve_get_type'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.curve_get_type'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.curve_get_type'>>]}, 'ref': 'kittycad.models.modeling_cmd.curve_get_type:93929008618288', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'curve_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'curve_get_type', 'schema': {'expected': ['curve_get_type'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'curve_get_type', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d315b30,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df356070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "curve_get_type",                                             },                                             expected_py: None,                                             name: "literal['curve_get_type']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "curve_id": SerField {                         key_py: Py(                             0x00007f80de5560b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "curve_get_type",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="curve_get_type", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "curve_id",                         lookup_key: Simple {                             key: "curve_id",                             py_key: Py(                                 0x00007f80de5c80f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "curve_id",                                         Py(                                             0x00007f80de22f630,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de5560b0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de23ab20,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de23ab50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df356070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "curve_get_type": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df356070,                                                 ),                                             ],                                         },                                         expected_repr: "'curve_get_type'",                                         name: "literal['curve_get_type']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['curve_get_type']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "curve_get_type",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d315b30,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "curve_get_type",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, curve_id: str, type: Literal['curve_get_type'] = 'curve_get_type') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

curve_id: str[source]
dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'curve_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['curve_get_type'], required=False, default='curve_get_type')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['curve_get_type'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.curve_set_constraint(**data)[source][source]

Get the plane for sketch mode.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'constraint_bound': <enum 'PathComponentConstraintBound'>, 'constraint_type': <enum 'PathComponentConstraintType'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['curve_set_constraint']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.curve_set_constraint'>, 'config': {'title': 'curve_set_constraint'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.curve_set_constraint'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.curve_set_constraint'>>]}, 'ref': 'kittycad.models.modeling_cmd.curve_set_constraint:93929008519040', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'constraint_bound': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'PathComponentConstraintBound'>, 'members': [PathComponentConstraintBound.UNCONSTRAINED, PathComponentConstraintBound.PARTIALLY_CONSTRAINED, PathComponentConstraintBound.FULLY_CONSTRAINED], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.path_component_constraint_bound.PathComponentConstraintBound:93929007017632', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'constraint_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'PathComponentConstraintType'>, 'members': [PathComponentConstraintType.UNCONSTRAINED, PathComponentConstraintType.VERTICAL, PathComponentConstraintType.HORIZONTAL, PathComponentConstraintType.EQUAL_LENGTH, PathComponentConstraintType.PARALLEL, PathComponentConstraintType.ANGLE_BETWEEN], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.path_component_constraint_type.PathComponentConstraintType:93929007020976', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'curve_set_constraint', 'schema': {'expected': ['curve_set_constraint'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'curve_set_constraint', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2fd780,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "constraint_bound": SerField {                         key_py: Py(                             0x00007f80de4b9d70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d18eea0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "constraint_type": SerField {                         key_py: Py(                             0x00007f80de4b9df0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d18fbb0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b9cf0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "curve_set_constraint",                                             },                                             expected_py: None,                                             name: "literal['curve_set_constraint']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "curve_set_constraint",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="curve_set_constraint", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "constraint_bound",                         lookup_key: Simple {                             key: "constraint_bound",                             py_key: Py(                                 0x00007f80de3a8db0,                             ),                             path: LookupPath(                                 [                                     S(                                         "constraint_bound",                                         Py(                                             0x00007f80de3fecf0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b9d70,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d18eea0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "unconstrained": 0,                                             "fully_constrained": 2,                                             "partially_constrained": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de46cc50,                                         ),                                         Py(                                             0x00007f80de46cd10,                                         ),                                         Py(                                             0x00007f80de46cdd0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'unconstrained', 'partially_constrained' or 'fully_constrained'",                                 strict: false,                                 class_repr: "PathComponentConstraintBound",                                 name: "str-enum[PathComponentConstraintBound]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "constraint_type",                         lookup_key: Simple {                             key: "constraint_type",                             py_key: Py(                                 0x00007f80de3fecb0,                             ),                             path: LookupPath(                                 [                                     S(                                         "constraint_type",                                         Py(                                             0x00007f80de3fed70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b9df0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d18fbb0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "unconstrained": 0,                                             "vertical": 1,                                             "angle_between": 5,                                             "horizontal": 2,                                             "equal_length": 3,                                             "parallel": 4,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de46e9f0,                                         ),                                         Py(                                             0x00007f80de46d070,                                         ),                                         Py(                                             0x00007f80de46ea50,                                         ),                                         Py(                                             0x00007f80de46eab0,                                         ),                                         Py(                                             0x00007f80de46eb10,                                         ),                                         Py(                                             0x00007f80de46eb70,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'unconstrained', 'vertical', 'horizontal', 'equal_length', 'parallel' or 'angle_between'",                                 strict: false,                                 class_repr: "PathComponentConstraintType",                                 name: "str-enum[PathComponentConstraintType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3fec30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3fec70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de200b40,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de200a50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b9cf0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "curve_set_constraint": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b9cf0,                                                 ),                                             ],                                         },                                         expected_repr: "'curve_set_constraint'",                                         name: "literal['curve_set_constraint']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['curve_set_constraint']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "curve_set_constraint",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2fd780,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "curve_set_constraint",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, constraint_bound: kittycad.models.path_component_constraint_bound.PathComponentConstraintBound, constraint_type: kittycad.models.path_component_constraint_type.PathComponentConstraintType, object_id: str, type: Literal['curve_set_constraint'] = 'curve_set_constraint') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

constraint_bound: PathComponentConstraintBound[source]
constraint_type: PathComponentConstraintType[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'constraint_bound': FieldInfo(annotation=PathComponentConstraintBound, required=True), 'constraint_type': FieldInfo(annotation=PathComponentConstraintType, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['curve_set_constraint'], required=False, default='curve_set_constraint')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['curve_set_constraint'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.default_camera_focus_on(**data)[source][source]

Focus the default camera upon an object in the scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['default_camera_focus_on'], 'uuid': <class 'str'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.default_camera_focus_on'>, 'config': {'title': 'default_camera_focus_on'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_focus_on'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_focus_on'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_focus_on:93929009019264', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_focus_on', 'schema': {'expected': ['default_camera_focus_on'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'uuid': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}}, 'model_name': 'default_camera_focus_on', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d377980,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "uuid": SerField {                         key_py: Py(                             0x00007f80f02028e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df355db0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_focus_on",                                             },                                             expected_py: None,                                             name: "literal['default_camera_focus_on']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_focus_on",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_focus_on", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2c4ba0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2c4bd0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df355db0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_focus_on": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df355db0,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_focus_on'",                                         name: "literal['default_camera_focus_on']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_focus_on']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "uuid",                         lookup_key: Simple {                             key: "uuid",                             py_key: Py(                                 0x00007f80de2c4c00,                             ),                             path: LookupPath(                                 [                                     S(                                         "uuid",                                         Py(                                             0x00007f80de2c4c30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f02028e0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_focus_on",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d377980,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_focus_on",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['default_camera_focus_on'] = 'default_camera_focus_on', uuid: str) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['default_camera_focus_on'], required=False, default='default_camera_focus_on'), 'uuid': FieldInfo(annotation=str, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['default_camera_focus_on'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

uuid: str[source]
classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.default_camera_get_settings(**data)[source][source]

Gets the default camera’s camera settings

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['default_camera_get_settings']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.default_camera_get_settings'>, 'config': {'title': 'default_camera_get_settings'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_get_settings'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_get_settings'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_get_settings:93929007454080', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_get_settings', 'schema': {'expected': ['default_camera_get_settings'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_camera_get_settings', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1f9780,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df162510,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_get_settings",                                             },                                             expected_py: None,                                             name: "literal['default_camera_get_settings']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_get_settings",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_get_settings", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4e60a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4e60d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df162510,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_get_settings": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df162510,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_get_settings'",                                         name: "literal['default_camera_get_settings']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_get_settings']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_get_settings",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1f9780,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_get_settings",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['default_camera_get_settings'] = 'default_camera_get_settings') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['default_camera_get_settings'], required=False, default='default_camera_get_settings')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['default_camera_get_settings'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.default_camera_look_at(**data)[source][source]

Change what the default camera is looking at.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'center': <class 'kittycad.models.point3d.Point3d'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'sequence': typing.Optional[int], 'type': typing.Literal['default_camera_look_at'], 'up': <class 'kittycad.models.point3d.Point3d'>, 'vantage': <class 'kittycad.models.point3d.Point3d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.default_camera_look_at'>, 'config': {'title': 'default_camera_look_at'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_look_at'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_look_at'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_look_at:93929007470608', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'center': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_look_at', 'schema': {'expected': ['default_camera_look_at'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'up': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'vantage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'default_camera_look_at', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1fd810,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "vantage": SerField {                         key_py: Py(                             0x00007f80de475dd0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "up": SerField {                         key_py: Py(                             0x00007f80f06ab0f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "center": SerField {                         key_py: Py(                             0x00007f80f0f08150,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de480d70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_look_at",                                             },                                             expected_py: None,                                             name: "literal['default_camera_look_at']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 5,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_look_at",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_look_at", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "center",                         lookup_key: Simple {                             key: "center",                             py_key: Py(                                 0x00007f80de4e7090,                             ),                             path: LookupPath(                                 [                                     S(                                         "center",                                         Py(                                             0x00007f80de4e70c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0f08150,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de425df0,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de425c30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4e70f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4e7120,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de480d70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_look_at": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de480d70,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_look_at'",                                         name: "literal['default_camera_look_at']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_look_at']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "up",                         lookup_key: Simple {                             key: "up",                             py_key: Py(                                 0x00007f80de4e7150,                             ),                             path: LookupPath(                                 [                                     S(                                         "up",                                         Py(                                             0x00007f80de4e7180,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f06ab0f0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "vantage",                         lookup_key: Simple {                             key: "vantage",                             py_key: Py(                                 0x00007f80de4e71b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "vantage",                                         Py(                                             0x00007f80de4e71e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475dd0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_look_at",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1fd810,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_look_at",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, center: kittycad.models.point3d.Point3d, sequence: Optional[int] = None, type: Literal['default_camera_look_at'] = 'default_camera_look_at', up: kittycad.models.point3d.Point3d, vantage: kittycad.models.point3d.Point3d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

center: Point3d[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'center': FieldInfo(annotation=Point3d, required=True), 'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['default_camera_look_at'], required=False, default='default_camera_look_at'), 'up': FieldInfo(annotation=Point3d, required=True), 'vantage': FieldInfo(annotation=Point3d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

sequence: Optional[int][source]
type: Literal['default_camera_look_at'][source]
up: Point3d[source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

vantage: Point3d[source]
class kittycad.models.modeling_cmd.default_camera_perspective_settings(**data)[source][source]

Change what the default camera is looking at.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'center': <class 'kittycad.models.point3d.Point3d'>, 'fov_y': typing.Optional[float], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'sequence': typing.Optional[int], 'type': typing.Literal['default_camera_perspective_settings'], 'up': <class 'kittycad.models.point3d.Point3d'>, 'vantage': <class 'kittycad.models.point3d.Point3d'>, 'z_far': typing.Optional[float], 'z_near': typing.Optional[float]}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.default_camera_perspective_settings'>, 'config': {'title': 'default_camera_perspective_settings'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_perspective_settings'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_perspective_settings'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_perspective_settings:93929007479392', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'center': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'fov_y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_perspective_settings', 'schema': {'expected': ['default_camera_perspective_settings'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'up': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'vantage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'z_far': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'z_near': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_camera_perspective_settings', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1ffa60,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "up": SerField {                         key_py: Py(                             0x00007f80f06ab0f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "vantage": SerField {                         key_py: Py(                             0x00007f80de475dd0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "fov_y": SerField {                         key_py: Py(                             0x00007f80df003f00,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Float(                                                 FloatSerializer {                                                     inf_nan_mode: Null,                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "z_far": SerField {                         key_py: Py(                             0x00007f80de476220,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Float(                                                 FloatSerializer {                                                     inf_nan_mode: Null,                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de440e90,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_perspective_settings",                                             },                                             expected_py: None,                                             name: "literal['default_camera_perspective_settings']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "z_near": SerField {                         key_py: Py(                             0x00007f80de476310,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Float(                                                 FloatSerializer {                                                     inf_nan_mode: Null,                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "center": SerField {                         key_py: Py(                             0x00007f80f0f08150,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 8,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_perspective_settings",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_perspective_settings", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "center",                         lookup_key: Simple {                             key: "center",                             py_key: Py(                                 0x00007f80de4a4390,                             ),                             path: LookupPath(                                 [                                     S(                                         "center",                                         Py(                                             0x00007f80de4a43c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0f08150,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "fov_y",                         lookup_key: Simple {                             key: "fov_y",                             py_key: Py(                                 0x00007f80de4a43f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "fov_y",                                         Py(                                             0x00007f80de4a4420,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df003f00,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de306e30,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de306df0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4a4450,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4a4480,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de440e90,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_perspective_settings": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de440e90,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_perspective_settings'",                                         name: "literal['default_camera_perspective_settings']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_perspective_settings']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "up",                         lookup_key: Simple {                             key: "up",                             py_key: Py(                                 0x00007f80de4a44b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "up",                                         Py(                                             0x00007f80de4a44e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f06ab0f0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "vantage",                         lookup_key: Simple {                             key: "vantage",                             py_key: Py(                                 0x00007f80de4a4510,                             ),                             path: LookupPath(                                 [                                     S(                                         "vantage",                                         Py(                                             0x00007f80de4a4540,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475dd0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "z_far",                         lookup_key: Simple {                             key: "z_far",                             py_key: Py(                                 0x00007f80de4a4570,                             ),                             path: LookupPath(                                 [                                     S(                                         "z_far",                                         Py(                                             0x00007f80de4a45a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de476220,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "z_near",                         lookup_key: Simple {                             key: "z_near",                             py_key: Py(                                 0x00007f80de4a45d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "z_near",                                         Py(                                             0x00007f80de4a4600,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de476310,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_perspective_settings",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1ffa60,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_perspective_settings",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, center: kittycad.models.point3d.Point3d, fov_y: Optional[float] = None, sequence: Optional[int] = None, type: Literal['default_camera_perspective_settings'] = 'default_camera_perspective_settings', up: kittycad.models.point3d.Point3d, vantage: kittycad.models.point3d.Point3d, z_far: Optional[float] = None, z_near: Optional[float] = None) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

center: Point3d[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

fov_y: Optional[float][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'center': FieldInfo(annotation=Point3d, required=True), 'fov_y': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['default_camera_perspective_settings'], required=False, default='default_camera_perspective_settings'), 'up': FieldInfo(annotation=Point3d, required=True), 'vantage': FieldInfo(annotation=Point3d, required=True), 'z_far': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'z_near': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

sequence: Optional[int][source]
type: Literal['default_camera_perspective_settings'][source]
up: Point3d[source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

vantage: Point3d[source]
z_far: Optional[float][source]
z_near: Optional[float][source]
class kittycad.models.modeling_cmd.default_camera_set_orthographic(**data)[source][source]

Use orthographic projection.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['default_camera_set_orthographic']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.default_camera_set_orthographic'>, 'config': {'title': 'default_camera_set_orthographic'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_set_orthographic'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_set_orthographic'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_set_orthographic:93929009060432', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_set_orthographic', 'schema': {'expected': ['default_camera_set_orthographic'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_camera_set_orthographic', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d381a50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de442ec0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_set_orthographic",                                             },                                             expected_py: None,                                             name: "literal['default_camera_set_orthographic']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_set_orthographic",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_set_orthographic", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2d21c0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2d21f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de442ec0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_set_orthographic": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de442ec0,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_set_orthographic'",                                         name: "literal['default_camera_set_orthographic']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_set_orthographic']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_set_orthographic",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d381a50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_set_orthographic",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['default_camera_set_orthographic'] = 'default_camera_set_orthographic') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['default_camera_set_orthographic'], required=False, default='default_camera_set_orthographic')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['default_camera_set_orthographic'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.default_camera_set_perspective(**data)[source][source]

Use perspective projection.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'parameters': typing.Optional[kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters], 'type': typing.Literal['default_camera_set_perspective']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.default_camera_set_perspective'>, 'config': {'title': 'default_camera_set_perspective'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_set_perspective'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_set_perspective'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_set_perspective:93929009072864', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'parameters': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters'>, 'config': {'title': 'PerspectiveCameraParameters'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters'>>]}, 'ref': 'kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters:93929007176064', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'fov_y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'z_far': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'z_near': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'PerspectiveCameraParameters', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_set_perspective', 'schema': {'expected': ['default_camera_set_perspective'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_camera_set_perspective', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d384ae0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4430f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_set_perspective",                                             },                                             expected_py: None,                                             name: "literal['default_camera_set_perspective']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "parameters": SerField {                         key_py: Py(                             0x00007f80f0a828f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Model(                                                 ModelSerializer {                                                     class: Py(                                                         0x0000556d8d1b5980,                                                     ),                                                     serializer: Fields(                                                         GeneralFieldsSerializer {                                                             fields: {                                                                 "z_far": SerField {                                                                     key_py: Py(                                                                         0x00007f80de476220,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         WithDefault(                                                                             WithDefaultSerializer {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 serializer: Nullable(                                                                                     NullableSerializer {                                                                                         serializer: Float(                                                                                             FloatSerializer {                                                                                                 inf_nan_mode: Null,                                                                                             },                                                                                         ),                                                                                     },                                                                                 ),                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "z_near": SerField {                                                                     key_py: Py(                                                                         0x00007f80de476310,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         WithDefault(                                                                             WithDefaultSerializer {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 serializer: Nullable(                                                                                     NullableSerializer {                                                                                         serializer: Float(                                                                                             FloatSerializer {                                                                                                 inf_nan_mode: Null,                                                                                             },                                                                                         ),                                                                                     },                                                                                 ),                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "fov_y": SerField {                                                                     key_py: Py(                                                                         0x00007f80df003f00,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         WithDefault(                                                                             WithDefaultSerializer {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 serializer: Nullable(                                                                                     NullableSerializer {                                                                                         serializer: Float(                                                                                             FloatSerializer {                                                                                                 inf_nan_mode: Null,                                                                                             },                                                                                         ),                                                                                     },                                                                                 ),                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                             },                                                             computed_fields: Some(                                                                 ComputedFields(                                                                     [],                                                                 ),                                                             ),                                                             mode: SimpleDict,                                                             extra_serializer: None,                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             required_fields: 3,                                                         },                                                     ),                                                     has_extra: false,                                                     root_model: false,                                                     name: "PerspectiveCameraParameters",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_set_perspective",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_set_perspective", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "parameters",                         lookup_key: Simple {                             key: "parameters",                             py_key: Py(                                 0x00007f80de2cf3b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "parameters",                                         Py(                                             0x00007f80de2cf370,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a828f0,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Model(                                             ModelValidator {                                                 revalidate: Never,                                                 validator: ModelFields(                                                     ModelFieldsValidator {                                                         fields: [                                                             Field {                                                                 name: "fov_y",                                                                 lookup_key: Simple {                                                                     key: "fov_y",                                                                     py_key: Py(                                                                         0x00007f80de2d80f0,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "fov_y",                                                                                 Py(                                                                                     0x00007f80de2d8120,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80df003f00,                                                                 ),                                                                 validator: WithDefault(                                                                     WithDefaultValidator {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         on_error: Raise,                                                                         validator: Nullable(                                                                             NullableValidator {                                                                                 validator: Float(                                                                                     FloatValidator {                                                                                         strict: false,                                                                                         allow_inf_nan: true,                                                                                     },                                                                                 ),                                                                                 name: "nullable[float]",                                                                             },                                                                         ),                                                                         validate_default: false,                                                                         copy_default: false,                                                                         name: "default[nullable[float]]",                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "z_far",                                                                 lookup_key: Simple {                                                                     key: "z_far",                                                                     py_key: Py(                                                                         0x00007f80de2d8150,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "z_far",                                                                                 Py(                                                                                     0x00007f80de2d8180,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80de476220,                                                                 ),                                                                 validator: WithDefault(                                                                     WithDefaultValidator {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         on_error: Raise,                                                                         validator: Nullable(                                                                             NullableValidator {                                                                                 validator: Float(                                                                                     FloatValidator {                                                                                         strict: false,                                                                                         allow_inf_nan: true,                                                                                     },                                                                                 ),                                                                                 name: "nullable[float]",                                                                             },                                                                         ),                                                                         validate_default: false,                                                                         copy_default: false,                                                                         name: "default[nullable[float]]",                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "z_near",                                                                 lookup_key: Simple {                                                                     key: "z_near",                                                                     py_key: Py(                                                                         0x00007f80de2d81b0,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "z_near",                                                                                 Py(                                                                                     0x00007f80de2d81e0,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80de476310,                                                                 ),                                                                 validator: WithDefault(                                                                     WithDefaultValidator {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         on_error: Raise,                                                                         validator: Nullable(                                                                             NullableValidator {                                                                                 validator: Float(                                                                                     FloatValidator {                                                                                         strict: false,                                                                                         allow_inf_nan: true,                                                                                     },                                                                                 ),                                                                                 name: "nullable[float]",                                                                             },                                                                         ),                                                                         validate_default: false,                                                                         copy_default: false,                                                                         name: "default[nullable[float]]",                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                         ],                                                         model_name: "PerspectiveCameraParameters",                                                         extra_behavior: Ignore,                                                         extras_validator: None,                                                         strict: false,                                                         from_attributes: false,                                                         loc_by_alias: true,                                                     },                                                 ),                                                 class: Py(                                                     0x0000556d8d1b5980,                                                 ),                                                 post_init: None,                                                 frozen: false,                                                 custom_init: false,                                                 root_model: false,                                                 undefined: Py(                                                     0x00007f80e0935e70,                                                 ),                                                 name: "PerspectiveCameraParameters",                                             },                                         ),                                         name: "nullable[PerspectiveCameraParameters]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[PerspectiveCameraParameters]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2d8210,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2d8240,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4430f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_set_perspective": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4430f0,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_set_perspective'",                                         name: "literal['default_camera_set_perspective']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_set_perspective']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_set_perspective",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d384ae0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_set_perspective",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, parameters: Optional[kittycad.models.perspective_camera_parameters.PerspectiveCameraParameters] = None, type: Literal['default_camera_set_perspective'] = 'default_camera_set_perspective') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'parameters': FieldInfo(annotation=Union[PerspectiveCameraParameters, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['default_camera_set_perspective'], required=False, default='default_camera_set_perspective')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

parameters: Optional[PerspectiveCameraParameters][source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['default_camera_set_perspective'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.default_camera_zoom(**data)[source][source]

Adjust zoom of the default camera.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'magnitude': <class 'float'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['default_camera_zoom']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.default_camera_zoom'>, 'config': {'title': 'default_camera_zoom'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.default_camera_zoom'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.default_camera_zoom'>>]}, 'ref': 'kittycad.models.modeling_cmd.default_camera_zoom:93929007501232', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'magnitude': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_camera_zoom', 'schema': {'expected': ['default_camera_zoom'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_camera_zoom', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d204fb0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df355bf0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "default_camera_zoom",                                             },                                             expected_py: None,                                             name: "literal['default_camera_zoom']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "magnitude": SerField {                         key_py: Py(                             0x00007f80e25e9bf0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "default_camera_zoom",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="default_camera_zoom", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "magnitude",                         lookup_key: Simple {                             key: "magnitude",                             py_key: Py(                                 0x00007f80de470a70,                             ),                             path: LookupPath(                                 [                                     S(                                         "magnitude",                                         Py(                                             0x00007f80de4464f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e25e9bf0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4a4d80,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4a4db0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df355bf0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "default_camera_zoom": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df355bf0,                                                 ),                                             ],                                         },                                         expected_repr: "'default_camera_zoom'",                                         name: "literal['default_camera_zoom']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['default_camera_zoom']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "default_camera_zoom",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d204fb0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "default_camera_zoom",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, magnitude: float, type: Literal['default_camera_zoom'] = 'default_camera_zoom') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

magnitude: float[source]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'magnitude': FieldInfo(annotation=float, required=True), 'type': FieldInfo(annotation=Literal['default_camera_zoom'], required=False, default='default_camera_zoom')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['default_camera_zoom'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.density(**data)[source][source]

Get the density of entities in the scene or the default scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'material_mass': <class 'float'>, 'material_mass_unit': <enum 'UnitMass'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'output_unit': <enum 'UnitDensity'>, 'type': typing.Literal['density']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.density'>, 'config': {'title': 'density'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.density'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.density'>>]}, 'ref': 'kittycad.models.modeling_cmd.density:93929008955696', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'material_mass': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'material_mass_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitMass'>, 'members': [UnitMass.G, UnitMass.KG, UnitMass.LB], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_mass.UnitMass:93929000510400', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'output_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitDensity'>, 'members': [UnitDensity.LB_FT3, UnitDensity.KG_M3], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_density.UnitDensity:93929000508624', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'density', 'schema': {'expected': ['density'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'density', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d368130,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "output_unit": SerField {                         key_py: Py(                             0x00007f80dedc5eb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb59cd0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80efed9980,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "density",                                             },                                             expected_py: None,                                             name: "literal['density']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "material_mass_unit": SerField {                         key_py: Py(                             0x00007f80df1dbb70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb5a3c0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "material_mass": SerField {                         key_py: Py(                             0x00007f80df1d9830,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 5,             },         ),         has_extra: false,         root_model: false,         name: "density",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="density", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de2b00f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de2b00b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "material_mass",                         lookup_key: Simple {                             key: "material_mass",                             py_key: Py(                                 0x00007f80de2b0170,                             ),                             path: LookupPath(                                 [                                     S(                                         "material_mass",                                         Py(                                             0x00007f80de2b0130,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df1d9830,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "material_mass_unit",                         lookup_key: Simple {                             key: "material_mass_unit",                             py_key: Py(                                 0x00007f80de2b01b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "material_mass_unit",                                         Py(                                             0x00007f80de2b01f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df1dbb70,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb5a3c0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "g": 0,                                             "kg": 1,                                             "lb": 2,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79c8f0,                                         ),                                         Py(                                             0x00007f80de79c950,                                         ),                                         Py(                                             0x00007f80de79c9b0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'g', 'kg' or 'lb'",                                 strict: false,                                 class_repr: "UnitMass",                                 name: "str-enum[UnitMass]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "output_unit",                         lookup_key: Simple {                             key: "output_unit",                             py_key: Py(                                 0x00007f80de2b0230,                             ),                             path: LookupPath(                                 [                                     S(                                         "output_unit",                                         Py(                                             0x00007f80de2b0270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5eb0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb59cd0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "lb:ft3": 0,                                             "kg:m3": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79c7d0,                                         ),                                         Py(                                             0x00007f80de79c830,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'lb:ft3' or 'kg:m3'",                                 strict: false,                                 class_repr: "UnitDensity",                                 name: "str-enum[UnitDensity]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2a2190,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2a21f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80efed9980,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "density": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80efed9980,                                                 ),                                             ],                                         },                                         expected_repr: "'density'",                                         name: "literal['density']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['density']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "density",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d368130,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "density",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], material_mass: float, material_mass_unit: kittycad.models.unit_mass.UnitMass, output_unit: kittycad.models.unit_density.UnitDensity, type: Literal['density'] = 'density') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

material_mass: float[source]
material_mass_unit: UnitMass[source]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'material_mass': FieldInfo(annotation=float, required=True), 'material_mass_unit': FieldInfo(annotation=UnitMass, required=True), 'output_unit': FieldInfo(annotation=UnitDensity, required=True), 'type': FieldInfo(annotation=Literal['density'], required=False, default='density')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

output_unit: UnitDensity[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['density'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.edge_lines_visible(**data)[source][source]

Changes visibility of scene-wide edge lines on brep solids

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'hidden': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['edge_lines_visible']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.edge_lines_visible'>, 'config': {'title': 'edge_lines_visible'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.edge_lines_visible'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.edge_lines_visible'>>]}, 'ref': 'kittycad.models.modeling_cmd.edge_lines_visible:93929008021328', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'hidden': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'edge_lines_visible', 'schema': {'expected': ['edge_lines_visible'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'edge_lines_visible', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d283f50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4936b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "edge_lines_visible",                                             },                                             expected_py: None,                                             name: "literal['edge_lines_visible']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "hidden": SerField {                         key_py: Py(                             0x00007f80f00a85a0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "edge_lines_visible",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="edge_lines_visible", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "hidden",                         lookup_key: Simple {                             key: "hidden",                             py_key: Py(                                 0x00007f80de365a40,                             ),                             path: LookupPath(                                 [                                     S(                                         "hidden",                                         Py(                                             0x00007f80de365980,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00a85a0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de365950,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de365a10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4936b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "edge_lines_visible": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4936b0,                                                 ),                                             ],                                         },                                         expected_repr: "'edge_lines_visible'",                                         name: "literal['edge_lines_visible']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['edge_lines_visible']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "edge_lines_visible",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d283f50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "edge_lines_visible",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, hidden: bool, type: Literal['edge_lines_visible'] = 'edge_lines_visible') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

hidden: bool[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'hidden': FieldInfo(annotation=bool, required=True), 'type': FieldInfo(annotation=Literal['edge_lines_visible'], required=False, default='edge_lines_visible')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['edge_lines_visible'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.edit_mode_enter(**data)[source][source]

Enter edit mode

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'target': <class 'str'>, 'type': typing.Literal['edit_mode_enter']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.edit_mode_enter'>, 'config': {'title': 'edit_mode_enter'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.edit_mode_enter'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.edit_mode_enter'>>]}, 'ref': 'kittycad.models.modeling_cmd.edit_mode_enter:93929007851840', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'target': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'edit_mode_enter', 'schema': {'expected': ['edit_mode_enter'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'edit_mode_enter', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d25a940,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de492470,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "edit_mode_enter",                                             },                                             expected_py: None,                                             name: "literal['edit_mode_enter']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "target": SerField {                         key_py: Py(                             0x00007f80f1a3c6e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "edit_mode_enter",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="edit_mode_enter", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "target",                         lookup_key: Simple {                             key: "target",                             py_key: Py(                                 0x00007f80de323330,                             ),                             path: LookupPath(                                 [                                     S(                                         "target",                                         Py(                                             0x00007f80de323360,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3c6e0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de323390,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3233c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de492470,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "edit_mode_enter": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de492470,                                                 ),                                             ],                                         },                                         expected_repr: "'edit_mode_enter'",                                         name: "literal['edit_mode_enter']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['edit_mode_enter']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "edit_mode_enter",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d25a940,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "edit_mode_enter",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, target: str, type: Literal['edit_mode_enter'] = 'edit_mode_enter') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'target': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['edit_mode_enter'], required=False, default='edit_mode_enter')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

target: str[source]
type: Literal['edit_mode_enter'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.edit_mode_exit(**data)[source][source]

Exit edit mode

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['edit_mode_exit']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.edit_mode_exit'>, 'config': {'title': 'edit_mode_exit'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.edit_mode_exit'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.edit_mode_exit'>>]}, 'ref': 'kittycad.models.modeling_cmd.edit_mode_exit:93929009136176', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'edit_mode_exit', 'schema': {'expected': ['edit_mode_exit'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'edit_mode_exit', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_extrusion_face_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'view_isometric': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d394230,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de305070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "edit_mode_exit",                                             },                                             expected_py: None,                                             name: "literal['edit_mode_exit']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "edit_mode_exit",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="edit_mode_exit", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2eb150,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2eb180,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de305070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "edit_mode_exit": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de305070,                                                 ),                                             ],                                         },                                         expected_repr: "'edit_mode_exit'",                                         name: "literal['edit_mode_exit']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['edit_mode_exit']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "edit_mode_exit",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d394230,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "edit_mode_exit",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['edit_mode_exit'] = 'edit_mode_exit') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['edit_mode_exit'], required=False, default='edit_mode_exit')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['edit_mode_exit'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.enable_sketch_mode(**data)[source][source]

Sketch on some entity (e.g. a plane, a face).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'adjust_camera': <class 'bool'>, 'animated': <class 'bool'>, 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'ortho': <class 'bool'>, 'planar_normal': typing.Optional[kittycad.models.point3d.Point3d], 'type': typing.Literal['enable_sketch_mode']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.enable_sketch_mode'>, 'config': {'title': 'enable_sketch_mode'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.enable_sketch_mode'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.enable_sketch_mode'>>]}, 'ref': 'kittycad.models.modeling_cmd.enable_sketch_mode:93929008529744', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'adjust_camera': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'animated': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'ortho': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'planar_normal': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'enable_sketch_mode', 'schema': {'expected': ['enable_sketch_mode'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'enable_sketch_mode', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d300150,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "animated": SerField {                         key_py: Py(                             0x00007f80df650530,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "ortho": SerField {                         key_py: Py(                             0x00007f80df541200,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "planar_normal": SerField {                         key_py: Py(                             0x00007f80de4ba0b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Model(                                                 ModelSerializer {                                                     class: Py(                                                         0x0000556d8c616f80,                                                     ),                                                     serializer: Fields(                                                         GeneralFieldsSerializer {                                                             fields: {                                                                 "y": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e7f8,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "z": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e828,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "x": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3d0b8,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                             },                                                             computed_fields: Some(                                                                 ComputedFields(                                                                     [],                                                                 ),                                                             ),                                                             mode: SimpleDict,                                                             extra_serializer: None,                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             required_fields: 3,                                                         },                                                     ),                                                     has_extra: false,                                                     root_model: false,                                                     name: "Point3d",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "adjust_camera": SerField {                         key_py: Py(                             0x00007f80de4ba030,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b9ff0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "enable_sketch_mode",                                             },                                             expected_py: None,                                             name: "literal['enable_sketch_mode']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 6,             },         ),         has_extra: false,         root_model: false,         name: "enable_sketch_mode",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="enable_sketch_mode", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "adjust_camera",                         lookup_key: Simple {                             key: "adjust_camera",                             py_key: Py(                                 0x00007f80de22c170,                             ),                             path: LookupPath(                                 [                                     S(                                         "adjust_camera",                                         Py(                                             0x00007f80de22c130,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4ba030,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "animated",                         lookup_key: Simple {                             key: "animated",                             py_key: Py(                                 0x00007f80de22c1f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "animated",                                         Py(                                             0x00007f80de22c1b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df650530,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de22c230,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de22c270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "ortho",                         lookup_key: Simple {                             key: "ortho",                             py_key: Py(                                 0x00007f80de224b70,                             ),                             path: LookupPath(                                 [                                     S(                                         "ortho",                                         Py(                                             0x00007f80de224ba0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df541200,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "planar_normal",                         lookup_key: Simple {                             key: "planar_normal",                             py_key: Py(                                 0x00007f80de22c2b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "planar_normal",                                         Py(                                             0x00007f80de22c2f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4ba0b0,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Model(                                             ModelValidator {                                                 revalidate: Never,                                                 validator: ModelFields(                                                     ModelFieldsValidator {                                                         fields: [                                                             Field {                                                                 name: "x",                                                                 lookup_key: Simple {                                                                     key: "x",                                                                     py_key: Py(                                                                         0x00007f80f1a3e7c8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "x",                                                                                 Py(                                                                                     0x00007f80f1a3e7c8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3d0b8,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "y",                                                                 lookup_key: Simple {                                                                     key: "y",                                                                     py_key: Py(                                                                         0x00007f80f1a3e7f8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "y",                                                                                 Py(                                                                                     0x00007f80f1a3e7f8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "z",                                                                 lookup_key: Simple {                                                                     key: "z",                                                                     py_key: Py(                                                                         0x00007f80f1a3e828,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "z",                                                                                 Py(                                                                                     0x00007f80f1a3e828,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e828,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                         ],                                                         model_name: "Point3d",                                                         extra_behavior: Ignore,                                                         extras_validator: None,                                                         strict: false,                                                         from_attributes: false,                                                         loc_by_alias: true,                                                     },                                                 ),                                                 class: Py(                                                     0x0000556d8c616f80,                                                 ),                                                 post_init: None,                                                 frozen: false,                                                 custom_init: false,                                                 root_model: false,                                                 undefined: Py(                                                     0x00007f80e0935e70,                                                 ),                                                 name: "Point3d",                                             },                                         ),                                         name: "nullable[Point3d]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[Point3d]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de224bd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de224c00,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b9ff0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "enable_sketch_mode": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b9ff0,                                                 ),                                             ],                                         },                                         expected_repr: "'enable_sketch_mode'",                                         name: "literal['enable_sketch_mode']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['enable_sketch_mode']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "enable_sketch_mode",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d300150,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "enable_sketch_mode",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, adjust_camera: bool, animated: bool, entity_id: str, ortho: bool, planar_normal: Optional[kittycad.models.point3d.Point3d] = None, type: Literal['enable_sketch_mode'] = 'enable_sketch_mode') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

adjust_camera: bool[source]
animated: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'adjust_camera': FieldInfo(annotation=bool, required=True), 'animated': FieldInfo(annotation=bool, required=True), 'entity_id': FieldInfo(annotation=str, required=True), 'ortho': FieldInfo(annotation=bool, required=True), 'planar_normal': FieldInfo(annotation=Union[Point3d, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['enable_sketch_mode'], required=False, default='enable_sketch_mode')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

ortho: bool[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

planar_normal: Optional[Point3d][source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['enable_sketch_mode'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_circular_pattern(**data)[source][source]

Create a circular pattern using this entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'arc_degrees': <class 'float'>, 'axis': <class 'kittycad.models.point3d.Point3d'>, 'center': <class 'kittycad.models.point3d.Point3d'>, 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'num_repetitions': <class 'int'>, 'rotate_duplicates': <class 'bool'>, 'type': typing.Literal['entity_circular_pattern']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.entity_circular_pattern'>, 'config': {'title': 'entity_circular_pattern'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_circular_pattern'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_circular_pattern'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_circular_pattern:93929007771760', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'arc_degrees': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'center': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'num_repetitions': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'rotate_duplicates': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_circular_pattern', 'schema': {'expected': ['entity_circular_pattern'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_circular_pattern', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d247070,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "num_repetitions": SerField {                         key_py: Py(                             0x00007f80de491bf0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08f63f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_circular_pattern",                                             },                                             expected_py: None,                                             name: "literal['entity_circular_pattern']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "rotate_duplicates": SerField {                         key_py: Py(                             0x00007f80de491e70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "arc_degrees": SerField {                         key_py: Py(                             0x00007f80de491db0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "axis": SerField {                         key_py: Py(                             0x00007f80f00bca80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "center": SerField {                         key_py: Py(                             0x00007f80f0f08150,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 7,             },         ),         has_extra: false,         root_model: false,         name: "entity_circular_pattern",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_circular_pattern", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "arc_degrees",                         lookup_key: Simple {                             key: "arc_degrees",                             py_key: Py(                                 0x00007f80de319670,                             ),                             path: LookupPath(                                 [                                     S(                                         "arc_degrees",                                         Py(                                             0x00007f80de319630,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491db0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "axis",                         lookup_key: Simple {                             key: "axis",                             py_key: Py(                                 0x00007f80de316d60,                             ),                             path: LookupPath(                                 [                                     S(                                         "axis",                                         Py(                                             0x00007f80de316d90,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00bca80,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "center",                         lookup_key: Simple {                             key: "center",                             py_key: Py(                                 0x00007f80de316dc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "center",                                         Py(                                             0x00007f80de316df0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0f08150,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de3196f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de3196b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "num_repetitions",                         lookup_key: Simple {                             key: "num_repetitions",                             py_key: Py(                                 0x00007f80de319730,                             ),                             path: LookupPath(                                 [                                     S(                                         "num_repetitions",                                         Py(                                             0x00007f80de319770,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491bf0,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "rotate_duplicates",                         lookup_key: Simple {                             key: "rotate_duplicates",                             py_key: Py(                                 0x00007f80de3197b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "rotate_duplicates",                                         Py(                                             0x00007f80de3197f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491e70,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de316e20,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de316e50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08f63f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_circular_pattern": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08f63f0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_circular_pattern'",                                         name: "literal['entity_circular_pattern']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_circular_pattern']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_circular_pattern",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d247070,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_circular_pattern",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, arc_degrees: float, axis: kittycad.models.point3d.Point3d, center: kittycad.models.point3d.Point3d, entity_id: str, num_repetitions: int, rotate_duplicates: bool, type: Literal['entity_circular_pattern'] = 'entity_circular_pattern') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

arc_degrees: float[source]
axis: Point3d[source]
center: Point3d[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'arc_degrees': FieldInfo(annotation=float, required=True), 'axis': FieldInfo(annotation=Point3d, required=True), 'center': FieldInfo(annotation=Point3d, required=True), 'entity_id': FieldInfo(annotation=str, required=True), 'num_repetitions': FieldInfo(annotation=int, required=True), 'rotate_duplicates': FieldInfo(annotation=bool, required=True), 'type': FieldInfo(annotation=Literal['entity_circular_pattern'], required=False, default='entity_circular_pattern')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

num_repetitions: int[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

rotate_duplicates: bool[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_circular_pattern'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_fade(**data)[source][source]

Fade entity in or out.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'duration_seconds': typing.Optional[float], 'entity_id': <class 'str'>, 'fade_in': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_fade']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_fade'>, 'config': {'title': 'entity_fade'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_fade'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_fade'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_fade:93929008318224', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'duration_seconds': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'fade_in': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_fade', 'schema': {'expected': ['entity_fade'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_fade', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2cc710,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "fade_in": SerField {                         key_py: Py(                             0x00007f80de497d20,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b9070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_fade",                                             },                                             expected_py: None,                                             name: "literal['entity_fade']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "duration_seconds": SerField {                         key_py: Py(                             0x00007f80de4b9170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Float(                                                 FloatSerializer {                                                     inf_nan_mode: Null,                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "entity_fade",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_fade", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "duration_seconds",                         lookup_key: Simple {                             key: "duration_seconds",                             py_key: Py(                                 0x00007f80de3d17b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "duration_seconds",                                         Py(                                             0x00007f80de3d1670,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b9170,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de3d16b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de3d1730,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "fade_in",                         lookup_key: Simple {                             key: "fade_in",                             py_key: Py(                                 0x00007f80de3d8030,                             ),                             path: LookupPath(                                 [                                     S(                                         "fade_in",                                         Py(                                             0x00007f80de3d8060,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de497d20,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3d8090,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3d80c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b9070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_fade": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b9070,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_fade'",                                         name: "literal['entity_fade']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_fade']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_fade",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2cc710,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_fade",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, duration_seconds: Optional[float] = None, entity_id: str, fade_in: bool, type: Literal['entity_fade'] = 'entity_fade') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

duration_seconds: Optional[float][source]
entity_id: str[source]
fade_in: bool[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'duration_seconds': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'entity_id': FieldInfo(annotation=str, required=True), 'fade_in': FieldInfo(annotation=bool, required=True), 'type': FieldInfo(annotation=Literal['entity_fade'], required=False, default='entity_fade')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_fade'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_all_child_uuids(**data)[source][source]

What are all UUIDs of this entity’s children?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_all_child_uuids']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_all_child_uuids'>, 'config': {'title': 'entity_get_all_child_uuids'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_all_child_uuids'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_all_child_uuids'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_all_child_uuids:93929007686496', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_all_child_uuids', 'schema': {'expected': ['entity_get_all_child_uuids'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_all_child_uuids', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d232360,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df162d30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_all_child_uuids",                                             },                                             expected_py: None,                                             name: "literal['entity_get_all_child_uuids']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_all_child_uuids",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_all_child_uuids", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de48e730,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de48e630,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de30a430,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de30a460,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df162d30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_all_child_uuids": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df162d30,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_all_child_uuids'",                                         name: "literal['entity_get_all_child_uuids']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_all_child_uuids']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_all_child_uuids",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d232360,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_all_child_uuids",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, type: Literal['entity_get_all_child_uuids'] = 'entity_get_all_child_uuids') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_all_child_uuids'], required=False, default='entity_get_all_child_uuids')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_all_child_uuids'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_child_uuid(**data)[source][source]

What is the UUID of this entity’s n-th child?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'child_index': <class 'int'>, 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_child_uuid']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_child_uuid'>, 'config': {'title': 'entity_get_child_uuid'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_child_uuid'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_child_uuid'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_child_uuid:93929005294512', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'child_index': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_child_uuid', 'schema': {'expected': ['entity_get_child_uuid'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_child_uuid', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8cfea3b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "child_index": SerField {                         key_py: Py(                             0x00007f80de491530,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08f6eb0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_child_uuid",                                             },                                             expected_py: None,                                             name: "literal['entity_get_child_uuid']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_child_uuid",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_child_uuid", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "child_index",                         lookup_key: Simple {                             key: "child_index",                             py_key: Py(                                 0x00007f80de48f170,                             ),                             path: LookupPath(                                 [                                     S(                                         "child_index",                                         Py(                                             0x00007f80de48c8b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491530,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de48cc30,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de48ccb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3093e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de309410,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08f6eb0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_child_uuid": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08f6eb0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_child_uuid'",                                         name: "literal['entity_get_child_uuid']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_child_uuid']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_child_uuid",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8cfea3b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_child_uuid",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, child_index: int, entity_id: str, type: Literal['entity_get_child_uuid'] = 'entity_get_child_uuid') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

child_index: int[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'child_index': FieldInfo(annotation=int, required=True), 'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_child_uuid'], required=False, default='entity_get_child_uuid')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_child_uuid'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_distance(**data)[source][source]

What is the distance between these two entities?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'distance_type': <class 'pydantic.root_model.RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'entity_id1': <class 'str'>, 'entity_id2': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_distance']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_distance'>, 'config': {'title': 'entity_get_distance'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_distance'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_distance'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_distance:93929007707440', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'distance_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191472399376]", 'root_model': True, 'schema': {'choices': {'euclidean': {'cls': <class 'kittycad.models.distance_type.euclidean'>, 'config': {'title': 'euclidean'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.distance_type.euclidean'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.distance_type.euclidean'>>]}, 'ref': 'kittycad.models.distance_type.euclidean:93929005544480', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'euclidean', 'schema': {'expected': ['euclidean'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'euclidean', 'type': 'model-fields'}, 'type': 'model'}, 'on_axis': {'cls': <class 'kittycad.models.distance_type.on_axis'>, 'config': {'title': 'on_axis'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.distance_type.on_axis'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.distance_type.on_axis'>>]}, 'ref': 'kittycad.models.distance_type.on_axis:93929005549792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'GlobalAxis'>, 'members': [GlobalAxis.X, GlobalAxis.Y, GlobalAxis.Z], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.global_axis.GlobalAxis:93929005540320', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'on_axis', 'schema': {'expected': ['on_axis'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'on_axis', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'entity_id1': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'entity_id2': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_distance', 'schema': {'expected': ['entity_get_distance'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_distance', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d237530,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08b4770,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_distance",                                             },                                             expected_py: None,                                             name: "literal['entity_get_distance']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id2": SerField {                         key_py: Py(                             0x00007f80de4919b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "distance_type": SerField {                         key_py: Py(                             0x00007f80df356570,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d02b3b0,                                     ),                                     serializer: Union(                                         UnionSerializer {                                             choices: [                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d027420,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80de500070,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "euclidean",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['euclidean']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 1,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "euclidean",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d0288e0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80de611fe0,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "on_axis",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['on_axis']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "axis": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00bca80,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8d0263e0,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 2,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "on_axis",                                                     },                                                 ),                                             ],                                             name: "Union[euclidean, on_axis]",                                         },                                     ),                                     has_extra: false,                                     root_model: true,                                     name: "RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                                 },                             ),                         ),                         required: true,                     },                     "entity_id1": SerField {                         key_py: Py(                             0x00007f80de491970,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_distance",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_distance", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "distance_type",                         lookup_key: Simple {                             key: "distance_type",                             py_key: Py(                                 0x00007f80de30c830,                             ),                             path: LookupPath(                                 [                                     S(                                         "distance_type",                                         Py(                                             0x00007f80de30c7f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df356570,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: TaggedUnion(                                     TaggedUnionValidator {                                         discriminator: LookupKey(                                             Simple {                                                 key: "type",                                                 py_key: Py(                                                     0x00007f80f1a3cbf8,                                                 ),                                                 path: LookupPath(                                                     [                                                         S(                                                             "type",                                                             Py(                                                                 0x00007f80f1a3cbf8,                                                             ),                                                         ),                                                     ],                                                 ),                                             },                                         ),                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "on_axis": 1,                                                     "euclidean": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de30bab0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de30bae0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80de500070,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "euclidean": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80de500070,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'euclidean'",                                                                                         name: "literal['euclidean']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['euclidean']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "euclidean",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d027420,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "euclidean",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "axis",                                                                         lookup_key: Simple {                                                                             key: "axis",                                                                             py_key: Py(                                                                                 0x00007f80de30bba0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "axis",                                                                                         Py(                                                                                             0x00007f80de30bb70,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00bca80,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8d0263e0,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "x": 0,                                                                                             "z": 2,                                                                                             "y": 1,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80de6768d0,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80de676930,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80de676990,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'x', 'y' or 'z'",                                                                                 strict: false,                                                                                 class_repr: "GlobalAxis",                                                                                 name: "str-enum[GlobalAxis]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de30bcc0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de30bc00,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80de611fe0,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "on_axis": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80de611fe0,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'on_axis'",                                                                                         name: "literal['on_axis']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['on_axis']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "on_axis",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d0288e0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "on_axis",                                                     },                                                 ),                                             ],                                         },                                         from_attributes: true,                                         strict: false,                                         custom_error: None,                                         tags_repr: "'euclidean', 'on_axis'",                                         discriminator_repr: "'type'",                                         name: "tagged-union[euclidean,on_axis]",                                     },                                 ),                                 class: Py(                                     0x0000556d8d02b3b0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: true,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id1",                         lookup_key: Simple {                             key: "entity_id1",                             py_key: Py(                                 0x00007f80de30c8b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id1",                                         Py(                                             0x00007f80de30c870,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491970,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id2",                         lookup_key: Simple {                             key: "entity_id2",                             py_key: Py(                                 0x00007f80de30c8f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id2",                                         Py(                                             0x00007f80de30c930,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4919b0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de30bc30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de30bc60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08b4770,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_distance": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08b4770,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_distance'",                                         name: "literal['entity_get_distance']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_distance']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_distance",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d237530,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_distance",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, distance_type: pydantic.root_model.RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], entity_id1: str, entity_id2: str, type: Literal['entity_get_distance'] = 'entity_get_distance') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

distance_type: RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]][source]
entity_id1: str[source]
entity_id2: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'distance_type': FieldInfo(annotation=RootModel[Annotated[Union[euclidean, on_axis], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], required=True), 'entity_id1': FieldInfo(annotation=str, required=True), 'entity_id2': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_distance'], required=False, default='entity_get_distance')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_distance'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_num_children(**data)[source][source]

How many children does the entity have?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_num_children']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_num_children'>, 'config': {'title': 'entity_get_num_children'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_num_children'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_num_children'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_num_children:93929007661744', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_num_children', 'schema': {'expected': ['entity_get_num_children'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_num_children', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d22c2b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08b7230,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_num_children",                                             },                                             expected_py: None,                                             name: "literal['entity_get_num_children']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_num_children",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_num_children", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de48eb70,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de48d9f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de308390,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3083c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08b7230,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_num_children": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08b7230,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_num_children'",                                         name: "literal['entity_get_num_children']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_num_children']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_num_children",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d22c2b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_num_children",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, type: Literal['entity_get_num_children'] = 'entity_get_num_children') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_num_children'], required=False, default='entity_get_num_children')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_num_children'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_parent_id(**data)[source][source]

What is this entity’s parent?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_parent_id']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_parent_id'>, 'config': {'title': 'entity_get_parent_id'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_parent_id'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_parent_id'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_parent_id:93929007543520', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_parent_id', 'schema': {'expected': ['entity_get_parent_id'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_parent_id', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d20f4e0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08b6fb0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_parent_id",                                             },                                             expected_py: None,                                             name: "literal['entity_get_parent_id']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_parent_id",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_parent_id", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de307eb0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de307ef0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4a7330,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4a7360,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08b6fb0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_parent_id": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08b6fb0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_parent_id'",                                         name: "literal['entity_get_parent_id']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_parent_id']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_parent_id",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d20f4e0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_parent_id",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, type: Literal['entity_get_parent_id'] = 'entity_get_parent_id') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_parent_id'], required=False, default='entity_get_parent_id')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_parent_id'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_get_sketch_paths(**data)[source][source]

What are all UUIDs of all the paths sketched on top of this entity?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_get_sketch_paths']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_get_sketch_paths'>, 'config': {'title': 'entity_get_sketch_paths'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_get_sketch_paths'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_get_sketch_paths'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_get_sketch_paths:93929007697312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_get_sketch_paths', 'schema': {'expected': ['entity_get_sketch_paths'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_get_sketch_paths', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d234da0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08b7c70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_get_sketch_paths",                                             },                                             expected_py: None,                                             name: "literal['entity_get_sketch_paths']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "entity_get_sketch_paths",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_get_sketch_paths", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de47d5f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de47d630,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de30aa30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de30aa60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08b7c70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_get_sketch_paths": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08b7c70,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_get_sketch_paths'",                                         name: "literal['entity_get_sketch_paths']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_get_sketch_paths']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_get_sketch_paths",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d234da0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_get_sketch_paths",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, type: Literal['entity_get_sketch_paths'] = 'entity_get_sketch_paths') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['entity_get_sketch_paths'], required=False, default='entity_get_sketch_paths')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_get_sketch_paths'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_linear_pattern(**data)[source][source]

Create a linear pattern using this entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'axis': <class 'kittycad.models.point3d.Point3d'>, 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'num_repetitions': <class 'int'>, 'spacing': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['entity_linear_pattern']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_linear_pattern'>, 'config': {'title': 'entity_linear_pattern'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_linear_pattern'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_linear_pattern'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_linear_pattern:93929007742624', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'num_repetitions': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'spacing': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_linear_pattern', 'schema': {'expected': ['entity_linear_pattern'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_linear_pattern', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d23fea0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df262bf0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_linear_pattern",                                             },                                             expected_py: None,                                             name: "literal['entity_linear_pattern']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "num_repetitions": SerField {                         key_py: Py(                             0x00007f80de491bf0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "axis": SerField {                         key_py: Py(                             0x00007f80f00bca80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c616f80,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "z": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e828,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 3,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point3d",                                 },                             ),                         ),                         required: true,                     },                     "spacing": SerField {                         key_py: Py(                             0x00007f80f03bd650,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 5,             },         ),         has_extra: false,         root_model: false,         name: "entity_linear_pattern",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_linear_pattern", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "axis",                         lookup_key: Simple {                             key: "axis",                             py_key: Py(                                 0x00007f80de314c90,                             ),                             path: LookupPath(                                 [                                     S(                                         "axis",                                         Py(                                             0x00007f80de314a50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00bca80,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "z",                                                 lookup_key: Simple {                                                     key: "z",                                                     py_key: Py(                                                         0x00007f80f1a3e828,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "z",                                                                 Py(                                                                     0x00007f80f1a3e828,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e828,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point3d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c616f80,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point3d",                             },                         ),                         frozen: false,                     },                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de30d330,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de30dc30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "num_repetitions",                         lookup_key: Simple {                             key: "num_repetitions",                             py_key: Py(                                 0x00007f80de30d930,                             ),                             path: LookupPath(                                 [                                     S(                                         "num_repetitions",                                         Py(                                             0x00007f80de30d8f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de491bf0,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "spacing",                         lookup_key: Simple {                             key: "spacing",                             py_key: Py(                                 0x00007f80de3149f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "spacing",                                         Py(                                             0x00007f80de314a20,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f03bd650,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de30df40,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de314bd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de314b70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df262bf0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_linear_pattern": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df262bf0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_linear_pattern'",                                         name: "literal['entity_linear_pattern']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_linear_pattern']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_linear_pattern",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d23fea0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_linear_pattern",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, axis: kittycad.models.point3d.Point3d, entity_id: str, num_repetitions: int, spacing: kittycad.models.length_unit.LengthUnit, type: Literal['entity_linear_pattern'] = 'entity_linear_pattern') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

axis: Point3d[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'axis': FieldInfo(annotation=Point3d, required=True), 'entity_id': FieldInfo(annotation=str, required=True), 'num_repetitions': FieldInfo(annotation=int, required=True), 'spacing': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['entity_linear_pattern'], required=False, default='entity_linear_pattern')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

num_repetitions: int[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

spacing: LengthUnit[source]
type: Literal['entity_linear_pattern'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_linear_pattern_transform(**data)[source][source]

Create a pattern using this entity by specifying the transform for each desired repetition.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'transform': typing.List[kittycad.models.linear_transform.LinearTransform], 'type': typing.Literal['entity_linear_pattern_transform']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.entity_linear_pattern_transform'>, 'config': {'title': 'entity_linear_pattern_transform'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_linear_pattern_transform'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_linear_pattern_transform'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_linear_pattern_transform:93929007717584', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'transform': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'cls': <class 'kittycad.models.linear_transform.LinearTransform'>, 'config': {'title': 'LinearTransform'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.linear_transform.LinearTransform'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.linear_transform.LinearTransform'>>]}, 'ref': 'kittycad.models.linear_transform.LinearTransform:93929006722000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'replicate': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'translate': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'LinearTransform', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_linear_pattern_transform', 'schema': {'expected': ['entity_linear_pattern_transform'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_linear_pattern_transform', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d239cd0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "transform": SerField {                         key_py: Py(                             0x00007f80f047e470,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Model(                                         ModelSerializer {                                             class: Py(                                                 0x0000556d8d146bd0,                                             ),                                             serializer: Fields(                                                 GeneralFieldsSerializer {                                                     fields: {                                                         "scale": SerField {                                                             key_py: Py(                                                                 0x00007f80f0162bb0,                                                             ),                                                             alias: None,                                                             alias_py: None,                                                             serializer: Some(                                                                 WithDefault(                                                                     WithDefaultSerializer {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         serializer: Nullable(                                                                             NullableSerializer {                                                                                 serializer: Recursive(                                                                                     DefinitionRefSerializer {                                                                                         definition: "...",                                                                                         retry_with_lax_check: true,                                                                                     },                                                                                 ),                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             ),                                                             required: true,                                                         },                                                         "replicate": SerField {                                                             key_py: Py(                                                                 0x00007f80e261ab70,                                                             ),                                                             alias: None,                                                             alias_py: None,                                                             serializer: Some(                                                                 WithDefault(                                                                     WithDefaultSerializer {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         serializer: Nullable(                                                                             NullableSerializer {                                                                                 serializer: Bool(                                                                                     BoolSerializer,                                                                                 ),                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             ),                                                             required: true,                                                         },                                                         "translate": SerField {                                                             key_py: Py(                                                                 0x00007f80f1a3caf8,                                                             ),                                                             alias: None,                                                             alias_py: None,                                                             serializer: Some(                                                                 WithDefault(                                                                     WithDefaultSerializer {                                                                         default: Default(                                                                             Py(                                                                                 0x00007f80f1947100,                                                                             ),                                                                         ),                                                                         serializer: Nullable(                                                                             NullableSerializer {                                                                                 serializer: Recursive(                                                                                     DefinitionRefSerializer {                                                                                         definition: "...",                                                                                         retry_with_lax_check: true,                                                                                     },                                                                                 ),                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             ),                                                             required: true,                                                         },                                                     },                                                     computed_fields: Some(                                                         ComputedFields(                                                             [],                                                         ),                                                     ),                                                     mode: SimpleDict,                                                     extra_serializer: None,                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     required_fields: 3,                                                 },                                             ),                                             has_extra: false,                                             root_model: false,                                             name: "LinearTransform",                                         },                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[LinearTransform]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df162d80,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_linear_pattern_transform",                                             },                                             expected_py: None,                                             name: "literal['entity_linear_pattern_transform']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "entity_linear_pattern_transform",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_linear_pattern_transform", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80dedcb8f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de30ea30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "transform",                         lookup_key: Simple {                             key: "transform",                             py_key: Py(                                 0x00007f80de30eb70,                             ),                             path: LookupPath(                                 [                                     S(                                         "transform",                                         Py(                                             0x00007f80de30ebb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f047e470,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Model(                                         ModelValidator {                                             revalidate: Never,                                             validator: ModelFields(                                                 ModelFieldsValidator {                                                     fields: [                                                         Field {                                                             name: "replicate",                                                             lookup_key: Simple {                                                                 key: "replicate",                                                                 py_key: Py(                                                                     0x00007f80de30eab0,                                                                 ),                                                                 path: LookupPath(                                                                     [                                                                         S(                                                                             "replicate",                                                                             Py(                                                                                 0x00007f80de30ea70,                                                                             ),                                                                         ),                                                                     ],                                                                 ),                                                             },                                                             name_py: Py(                                                                 0x00007f80e261ab70,                                                             ),                                                             validator: WithDefault(                                                                 WithDefaultValidator {                                                                     default: Default(                                                                         Py(                                                                             0x00007f80f1947100,                                                                         ),                                                                     ),                                                                     on_error: Raise,                                                                     validator: Nullable(                                                                         NullableValidator {                                                                             validator: Bool(                                                                                 BoolValidator {                                                                                     strict: false,                                                                                 },                                                                             ),                                                                             name: "nullable[bool]",                                                                         },                                                                     ),                                                                     validate_default: false,                                                                     copy_default: false,                                                                     name: "default[nullable[bool]]",                                                                     undefined: Py(                                                                         0x00007f80e0935e70,                                                                     ),                                                                 },                                                             ),                                                             frozen: false,                                                         },                                                         Field {                                                             name: "scale",                                                             lookup_key: Simple {                                                                 key: "scale",                                                                 py_key: Py(                                                                     0x00007f80de314e40,                                                                 ),                                                                 path: LookupPath(                                                                     [                                                                         S(                                                                             "scale",                                                                             Py(                                                                                 0x00007f80de314db0,                                                                             ),                                                                         ),                                                                     ],                                                                 ),                                                             },                                                             name_py: Py(                                                                 0x00007f80f0162bb0,                                                             ),                                                             validator: WithDefault(                                                                 WithDefaultValidator {                                                                     default: Default(                                                                         Py(                                                                             0x00007f80f1947100,                                                                         ),                                                                     ),                                                                     on_error: Raise,                                                                     validator: Nullable(                                                                         NullableValidator {                                                                             validator: DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "Point3d",                                                                                 },                                                                             ),                                                                             name: "nullable[Point3d]",                                                                         },                                                                     ),                                                                     validate_default: false,                                                                     copy_default: false,                                                                     name: "default[nullable[Point3d]]",                                                                     undefined: Py(                                                                         0x00007f80e0935e70,                                                                     ),                                                                 },                                                             ),                                                             frozen: false,                                                         },                                                         Field {                                                             name: "translate",                                                             lookup_key: Simple {                                                                 key: "translate",                                                                 py_key: Py(                                                                     0x00007f80de30eaf0,                                                                 ),                                                                 path: LookupPath(                                                                     [                                                                         S(                                                                             "translate",                                                                             Py(                                                                                 0x00007f80de30eb30,                                                                             ),                                                                         ),                                                                     ],                                                                 ),                                                             },                                                             name_py: Py(                                                                 0x00007f80f1a3caf8,                                                             ),                                                             validator: WithDefault(                                                                 WithDefaultValidator {                                                                     default: Default(                                                                         Py(                                                                             0x00007f80f1947100,                                                                         ),                                                                     ),                                                                     on_error: Raise,                                                                     validator: Nullable(                                                                         NullableValidator {                                                                             validator: DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "Point3d",                                                                                 },                                                                             ),                                                                             name: "nullable[Point3d]",                                                                         },                                                                     ),                                                                     validate_default: false,                                                                     copy_default: false,                                                                     name: "default[nullable[Point3d]]",                                                                     undefined: Py(                                                                         0x00007f80e0935e70,                                                                     ),                                                                 },                                                             ),                                                             frozen: false,                                                         },                                                     ],                                                     model_name: "LinearTransform",                                                     extra_behavior: Ignore,                                                     extras_validator: None,                                                     strict: false,                                                     from_attributes: false,                                                     loc_by_alias: true,                                                 },                                             ),                                             class: Py(                                                 0x0000556d8d146bd0,                                             ),                                             post_init: None,                                             frozen: false,                                             custom_init: false,                                             root_model: false,                                             undefined: Py(                                                 0x00007f80e0935e70,                                             ),                                             name: "LinearTransform",                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de314f30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de314d80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df162d80,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_linear_pattern_transform": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df162d80,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_linear_pattern_transform'",                                         name: "literal['entity_linear_pattern_transform']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_linear_pattern_transform']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_linear_pattern_transform",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d239cd0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_linear_pattern_transform",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, transform: List[kittycad.models.linear_transform.LinearTransform], type: Literal['entity_linear_pattern_transform'] = 'entity_linear_pattern_transform') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'transform': FieldInfo(annotation=List[LinearTransform], required=True), 'type': FieldInfo(annotation=Literal['entity_linear_pattern_transform'], required=False, default='entity_linear_pattern_transform')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

transform: List[LinearTransform][source]
type: Literal['entity_linear_pattern_transform'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_make_helix(**data)[source][source]

Create a helix using the input cylinder and other specified parameters.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'cylinder_id': <class 'str'>, 'is_clockwise': <class 'bool'>, 'length': <class 'kittycad.models.length_unit.LengthUnit'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'revolutions': <class 'float'>, 'start_angle': <class 'kittycad.models.angle.Angle'>, 'type': typing.Literal['entity_make_helix']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_make_helix'>, 'config': {'title': 'entity_make_helix'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_make_helix'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_make_helix'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_make_helix:93929007790480', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cylinder_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'is_clockwise': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'length': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'revolutions': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'start_angle': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.angle.Angle'>, 'config': {'title': 'Angle'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.angle.Angle'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.angle.Angle'>>]}, 'ref': 'kittycad.models.angle.Angle:93928997062896', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitAngle'>, 'members': [UnitAngle.DEGREES, UnitAngle.RADIANS], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_angle.UnitAngle:93928997104896', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'value': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Angle', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_make_helix', 'schema': {'expected': ['entity_make_helix'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_make_helix', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d24b990,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "start_angle": SerField {                         key_py: Py(                             0x00007f80de492130,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c8108f0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "value": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3cdc0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "unit": SerField {                                                     key_py: Py(                                                         0x00007f80f00c29a0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Enum(                                                             EnumSerializer {                                                                 class: Py(                                                                     0x0000556d8c81ad00,                                                                 ),                                                                 serializer: Some(                                                                     Str(                                                                         StrSerializer,                                                                     ),                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Angle",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de491ff0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_make_helix",                                             },                                             expected_py: None,                                             name: "literal['entity_make_helix']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "is_clockwise": SerField {                         key_py: Py(                             0x00007f80de492070,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "length": SerField {                         key_py: Py(                             0x00007f80f1a3a140,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "cylinder_id": SerField {                         key_py: Py(                             0x00007f80de492030,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "revolutions": SerField {                         key_py: Py(                             0x00007f80de4920b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 6,             },         ),         has_extra: false,         root_model: false,         name: "entity_make_helix",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_make_helix", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "cylinder_id",                         lookup_key: Simple {                             key: "cylinder_id",                             py_key: Py(                                 0x00007f80de31b670,                             ),                             path: LookupPath(                                 [                                     S(                                         "cylinder_id",                                         Py(                                             0x00007f80de31b630,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de492030,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "is_clockwise",                         lookup_key: Simple {                             key: "is_clockwise",                             py_key: Py(                                 0x00007f80de31b6f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "is_clockwise",                                         Py(                                             0x00007f80de31b6b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de492070,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "length",                         lookup_key: Simple {                             key: "length",                             py_key: Py(                                 0x00007f80de320120,                             ),                             path: LookupPath(                                 [                                     S(                                         "length",                                         Py(                                             0x00007f80de320150,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3a140,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de31b600,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "revolutions",                         lookup_key: Simple {                             key: "revolutions",                             py_key: Py(                                 0x00007f80de31b730,                             ),                             path: LookupPath(                                 [                                     S(                                         "revolutions",                                         Py(                                             0x00007f80de31b770,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4920b0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "start_angle",                         lookup_key: Simple {                             key: "start_angle",                             py_key: Py(                                 0x00007f80de4447f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "start_angle",                                         Py(                                             0x00007f80de31b7b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de492130,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "unit",                                                 lookup_key: Simple {                                                     key: "unit",                                                     py_key: Py(                                                         0x00007f80de320180,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "unit",                                                                 Py(                                                                     0x00007f80de3201b0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f00c29a0,                                                 ),                                                 validator: StrEnum(                                                     EnumValidator {                                                         phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                         class: Py(                                                             0x0000556d8c81ad00,                                                         ),                                                         lookup: LiteralLookup {                                                             expected_bool: None,                                                             expected_int: None,                                                             expected_str: Some(                                                                 {                                                                     "degrees": 0,                                                                     "radians": 1,                                                                 },                                                             ),                                                             expected_py_dict: None,                                                             expected_py_values: None,                                                             values: [                                                                 Py(                                                                     0x00007f80dede6c90,                                                                 ),                                                                 Py(                                                                     0x00007f80dede6cf0,                                                                 ),                                                             ],                                                         },                                                         missing: None,                                                         expected_repr: "'degrees' or 'radians'",                                                         strict: false,                                                         class_repr: "UnitAngle",                                                         name: "str-enum[UnitAngle]",                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "value",                                                 lookup_key: Simple {                                                     key: "value",                                                     py_key: Py(                                                         0x00007f80de3201e0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "value",                                                                 Py(                                                                     0x00007f80de320210,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3cdc0,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Angle",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c8108f0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Angle",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de320240,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de320270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de491ff0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_make_helix": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de491ff0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_make_helix'",                                         name: "literal['entity_make_helix']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_make_helix']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_make_helix",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d24b990,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_make_helix",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, cylinder_id: str, is_clockwise: bool, length: kittycad.models.length_unit.LengthUnit, revolutions: float, start_angle: kittycad.models.angle.Angle, type: Literal['entity_make_helix'] = 'entity_make_helix') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

cylinder_id: str[source]
dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

is_clockwise: bool[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

length: LengthUnit[source]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'cylinder_id': FieldInfo(annotation=str, required=True), 'is_clockwise': FieldInfo(annotation=bool, required=True), 'length': FieldInfo(annotation=LengthUnit, required=True), 'revolutions': FieldInfo(annotation=float, required=True), 'start_angle': FieldInfo(annotation=Angle, required=True), 'type': FieldInfo(annotation=Literal['entity_make_helix'], required=False, default='entity_make_helix')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

revolutions: float[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

start_angle: Angle[source]
type: Literal['entity_make_helix'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_mirror(**data)[source][source]

Mirror the input entities over the specified axis. (Currently only supports sketches)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'axis': <class 'kittycad.models.point3d.Point3d'>, 'ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'point': <class 'kittycad.models.point3d.Point3d'>, 'type': typing.Literal['entity_mirror']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.entity_mirror'>, 'config': {'title': 'entity_mirror'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_mirror'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_mirror'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_mirror:93929007812256', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'point': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_mirror', 'schema': {'expected': ['entity_mirror'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_mirror', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d250ea0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "point": SerField {                         key_py: Py(                             0x00007f80efed5b00,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "axis": SerField {                         key_py: Py(                             0x00007f80f00bca80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "ids": SerField {                         key_py: Py(                             0x00007f80f09d8930,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4920f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_mirror",                                             },                                             expected_py: None,                                             name: "literal['entity_mirror']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "entity_mirror",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_mirror", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "axis",                         lookup_key: Simple {                             key: "axis",                             py_key: Py(                                 0x00007f80de320d80,                             ),                             path: LookupPath(                                 [                                     S(                                         "axis",                                         Py(                                             0x00007f80de320d50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00bca80,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "ids",                         lookup_key: Simple {                             key: "ids",                             py_key: Py(                                 0x00007f80de320d20,                             ),                             path: LookupPath(                                 [                                     S(                                         "ids",                                         Py(                                             0x00007f80de320b40,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f09d8930,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "point",                         lookup_key: Simple {                             key: "point",                             py_key: Py(                                 0x00007f80de320db0,                             ),                             path: LookupPath(                                 [                                     S(                                         "point",                                         Py(                                             0x00007f80de320de0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80efed5b00,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de320e10,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de320e40,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4920f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_mirror": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4920f0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_mirror'",                                         name: "literal['entity_mirror']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_mirror']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_mirror",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d250ea0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_mirror",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, axis: kittycad.models.point3d.Point3d, ids: List[str], point: kittycad.models.point3d.Point3d, type: Literal['entity_mirror'] = 'entity_mirror') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

axis: Point3d[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

ids: List[str][source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'axis': FieldInfo(annotation=Point3d, required=True), 'ids': FieldInfo(annotation=List[str], required=True), 'point': FieldInfo(annotation=Point3d, required=True), 'type': FieldInfo(annotation=Literal['entity_mirror'], required=False, default='entity_mirror')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

point: Point3d[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_mirror'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_mirror_across_edge(**data)[source][source]

Mirror the input entities over the specified edge. (Currently only supports sketches)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['entity_mirror_across_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_mirror_across_edge'>, 'config': {'title': 'entity_mirror_across_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_mirror_across_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_mirror_across_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_mirror_across_edge:93929007831536', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_mirror_across_edge', 'schema': {'expected': ['entity_mirror_across_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_mirror_across_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2559f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "ids": SerField {                         key_py: Py(                             0x00007f80f09d8930,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de441480,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_mirror_across_edge",                                             },                                             expected_py: None,                                             name: "literal['entity_mirror_across_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "entity_mirror_across_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_mirror_across_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de322040,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de321fb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "ids",                         lookup_key: Simple {                             key: "ids",                             py_key: Py(                                 0x00007f80de322160,                             ),                             path: LookupPath(                                 [                                     S(                                         "ids",                                         Py(                                             0x00007f80de322130,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f09d8930,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de322100,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de321f80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de441480,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_mirror_across_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de441480,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_mirror_across_edge'",                                         name: "literal['entity_mirror_across_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_mirror_across_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_mirror_across_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2559f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_mirror_across_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, ids: List[str], type: Literal['entity_mirror_across_edge'] = 'entity_mirror_across_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

ids: List[str][source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'ids': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['entity_mirror_across_edge'], required=False, default='entity_mirror_across_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_mirror_across_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.entity_set_opacity(**data)[source][source]

Set opacity of the entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'opacity': <class 'float'>, 'type': typing.Literal['entity_set_opacity']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.entity_set_opacity'>, 'config': {'title': 'entity_set_opacity'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.entity_set_opacity'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.entity_set_opacity'>>]}, 'ref': 'kittycad.models.modeling_cmd.entity_set_opacity:93929008300656', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'opacity': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'entity_set_opacity', 'schema': {'expected': ['entity_set_opacity'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'entity_set_opacity', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2c8270,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b8ef0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "entity_set_opacity",                                             },                                             expected_py: None,                                             name: "literal['entity_set_opacity']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "opacity": SerField {                         key_py: Py(                             0x00007f80e2976e50,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "entity_set_opacity",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="entity_set_opacity", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de3d0b70,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de3d0b30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "opacity",                         lookup_key: Simple {                             key: "opacity",                             py_key: Py(                                 0x00007f80de3caf70,                             ),                             path: LookupPath(                                 [                                     S(                                         "opacity",                                         Py(                                             0x00007f80de3cafa0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2976e50,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3cafd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3cb000,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b8ef0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "entity_set_opacity": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b8ef0,                                                 ),                                             ],                                         },                                         expected_repr: "'entity_set_opacity'",                                         name: "literal['entity_set_opacity']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['entity_set_opacity']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "entity_set_opacity",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2c8270,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "entity_set_opacity",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, opacity: float, type: Literal['entity_set_opacity'] = 'entity_set_opacity') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'opacity': FieldInfo(annotation=float, required=True), 'type': FieldInfo(annotation=Literal['entity_set_opacity'], required=False, default='entity_set_opacity')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

opacity: float[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['entity_set_opacity'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.export(**data)[source][source]

Export the scene to a file.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'format': <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['export']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>, 'config': {'title': 'AxisDirectionPair'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>>]}, 'ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis.Axis:93928999906112', 'type': 'definition-ref'}, 'type': 'model-field'}, 'direction': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.direction.Direction:93928999957200', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'AxisDirectionPair', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <enum 'Axis'>, 'members': [Axis.Y, Axis.Z], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.axis.Axis:93928999906112', 'sub_type': 'str', 'type': 'enum'}, {'cls': <enum 'Direction'>, 'members': [Direction.POSITIVE, Direction.NEGATIVE], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.direction.Direction:93928999957200', 'sub_type': 'str', 'type': 'enum'}, {'cls': <class 'kittycad.models.system.System'>, 'config': {'title': 'System'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.system.System'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.system.System'>>]}, 'ref': 'kittycad.models.system.System:93928999901504', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'forward': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'type': 'definition-ref'}, 'type': 'model-field'}, 'up': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'System', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <enum 'UnitLength'>, 'members': [UnitLength.CM, UnitLength.FT, UnitLength.IN, UnitLength.M, UnitLength.MM, UnitLength.YD], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'sub_type': 'str', 'type': 'enum'}, {'cls': <class 'kittycad.models.selection.default_scene'>, 'config': {'title': 'default_scene'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.selection.default_scene'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.selection.default_scene'>>]}, 'ref': 'kittycad.models.selection.default_scene:93929003016528', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'default_scene', 'schema': {'expected': ['default_scene'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'default_scene', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'kittycad.models.selection.scene_by_index'>, 'config': {'title': 'scene_by_index'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.selection.scene_by_index'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.selection.scene_by_index'>>]}, 'ref': 'kittycad.models.selection.scene_by_index:93929003022560', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'index': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'scene_by_index', 'schema': {'expected': ['scene_by_index'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'scene_by_index', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'kittycad.models.selection.scene_by_name'>, 'config': {'title': 'scene_by_name'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.selection.scene_by_name'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.selection.scene_by_name'>>]}, 'ref': 'kittycad.models.selection.scene_by_name:93929003055600', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'name': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'scene_by_name', 'schema': {'expected': ['scene_by_name'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'scene_by_name', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'kittycad.models.selection.mesh_by_index'>, 'config': {'title': 'mesh_by_index'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.selection.mesh_by_index'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.selection.mesh_by_index'>>]}, 'ref': 'kittycad.models.selection.mesh_by_index:93929003062496', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'index': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'mesh_by_index', 'schema': {'expected': ['mesh_by_index'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'mesh_by_index', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'kittycad.models.selection.mesh_by_name'>, 'config': {'title': 'mesh_by_name'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.selection.mesh_by_name'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.selection.mesh_by_name'>>]}, 'ref': 'kittycad.models.selection.mesh_by_name:93929003069392', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'name': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'mesh_by_name', 'schema': {'expected': ['mesh_by_name'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'mesh_by_name', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191472402304]", 'root_model': True, 'schema': {'choices': {'default_scene': {'schema_ref': 'kittycad.models.selection.default_scene:93929003016528', 'type': 'definition-ref'}, 'mesh_by_index': {'schema_ref': 'kittycad.models.selection.mesh_by_index:93929003062496', 'type': 'definition-ref'}, 'mesh_by_name': {'schema_ref': 'kittycad.models.selection.mesh_by_name:93929003069392', 'type': 'definition-ref'}, 'scene_by_index': {'schema_ref': 'kittycad.models.selection.scene_by_index:93929003022560', 'type': 'definition-ref'}, 'scene_by_name': {'schema_ref': 'kittycad.models.selection.scene_by_name:93929003055600', 'type': 'definition-ref'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.export'>, 'config': {'title': 'export'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.export'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.export'>>]}, 'ref': 'kittycad.models.modeling_cmd.export:93929007532608', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'format': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191475842800]", 'root_model': True, 'schema': {'choices': {'fbx': {'cls': <class 'kittycad.models.output_format.fbx'>, 'config': {'title': 'fbx'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.fbx'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.fbx'>>]}, 'ref': 'kittycad.models.output_format.fbx:93928997096400', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'storage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'FbxStorage'>, 'members': [FbxStorage.ASCII, FbxStorage.BINARY], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.fbx_storage.FbxStorage:93928999975648', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'fbx', 'schema': {'expected': ['fbx'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'fbx', 'type': 'model-fields'}, 'type': 'model'}, 'gltf': {'cls': <class 'kittycad.models.output_format.gltf'>, 'config': {'title': 'gltf'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.gltf'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.gltf'>>]}, 'ref': 'kittycad.models.output_format.gltf:93929000596464', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'presentation': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'GltfPresentation'>, 'members': [GltfPresentation.COMPACT, GltfPresentation.PRETTY], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.gltf_presentation.GltfPresentation:93929003011296', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'storage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'GltfStorage'>, 'members': [GltfStorage.BINARY, GltfStorage.STANDARD, GltfStorage.EMBEDDED], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.gltf_storage.GltfStorage:93929003050608', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'gltf', 'schema': {'expected': ['gltf'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'gltf', 'type': 'model-fields'}, 'type': 'model'}, 'obj': {'cls': <class 'kittycad.models.output_format.obj'>, 'config': {'title': 'obj'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.obj'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.obj'>>]}, 'ref': 'kittycad.models.output_format.obj:93929000604800', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'obj', 'schema': {'expected': ['obj'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'obj', 'type': 'model-fields'}, 'type': 'model'}, 'ply': {'cls': <class 'kittycad.models.output_format.ply'>, 'config': {'title': 'ply'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.ply'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.ply'>>]}, 'ref': 'kittycad.models.output_format.ply:93929000622400', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'selection': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191472402304]", 'type': 'definition-ref'}, 'type': 'model-field'}, 'storage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'PlyStorage'>, 'members': [PlyStorage.ASCII, PlyStorage.BINARY_LITTLE_ENDIAN, PlyStorage.BINARY_BIG_ENDIAN], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.ply_storage.PlyStorage:93929003013968', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'ply', 'schema': {'expected': ['ply'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'ply', 'type': 'model-fields'}, 'type': 'model'}, 'step': {'cls': <class 'kittycad.models.output_format.step'>, 'config': {'title': 'step'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.step'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.step'>>]}, 'ref': 'kittycad.models.output_format.step:93929003122512', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'step', 'schema': {'expected': ['step'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'step', 'type': 'model-fields'}, 'type': 'model'}, 'stl': {'cls': <class 'kittycad.models.output_format.stl'>, 'config': {'title': 'stl'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.output_format.stl'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.output_format.stl'>>]}, 'ref': 'kittycad.models.output_format.stl:93929003137984', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'selection': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191472402304]", 'type': 'definition-ref'}, 'type': 'model-field'}, 'storage': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'StlStorage'>, 'members': [StlStorage.ASCII, StlStorage.BINARY], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.stl_storage.StlStorage:93929000585024', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'stl', 'schema': {'expected': ['stl'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'stl', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'export', 'schema': {'expected': ['export'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'export', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d20ca40,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80ecbb6d30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "export",                                             },                                             expected_py: None,                                             name: "literal['export']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "format": SerField {                         key_py: Py(                             0x00007f80f1a390e8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8cde7f00,                                     ),                                     serializer: Union(                                         UnionSerializer {                                             choices: [                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8c818bd0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "storage": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8cad7ae0,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3a20,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "fbx",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['fbx']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 2,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "fbx",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cb6f3f0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3c00,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "gltf",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['gltf']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "storage": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8cdc6670,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "presentation": SerField {                                                                         key_py: Py(                                                                             0x00007f80dedda370,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8cdbcce0,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "gltf",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cb71480,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1a3ad28,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "obj",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['obj']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "obj",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cb75940,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "storage": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8cdbd750,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "selection": SerField {                                                                         key_py: Py(                                                                             0x00007f80df1545f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3db0,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "ply",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['ply']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 5,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "ply",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cdd7f50,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1a3c468,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "step",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['step']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 2,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "step",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cddbbc0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3f60,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "stl",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['stl']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "storage": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Enum(                                                                                 EnumSerializer {                                                                                     class: Py(                                                                                         0x0000556d8cb6c740,                                                                                     ),                                                                                     serializer: Some(                                                                                         Str(                                                                                             StrSerializer,                                                                                         ),                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "selection": SerField {                                                                         key_py: Py(                                                                             0x00007f80df1545f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 5,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "stl",                                                     },                                                 ),                                             ],                                             name: "Union[fbx, gltf, obj, ply, step, stl]",                                         },                                     ),                                     has_extra: false,                                     root_model: true,                                     name: "RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "export",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8cdbf8e0), serializer: Fields(GeneralFieldsSerializer { fields: {"index": SerField { key_py: Py(0x7f80f19fae20), alias: None, alias_py: None, serializer: Some(Int(IntSerializer)), required: true }, "type": SerField { key_py: Py(0x7f80f1a3cbf8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f80df02edb0)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"scene_by_index"}, expected_py: None, name: "literal['scene_by_index']" }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "scene_by_index" }), Model(ModelSerializer { class: Py(0x556d8cdc79f0), serializer: Fields(GeneralFieldsSerializer { fields: {"name": SerField { key_py: Py(0x7f80f1a3a950), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "type": SerField { key_py: Py(0x7f80f1a3cbf8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f80deddb730)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"scene_by_name"}, expected_py: None, name: "literal['scene_by_name']" }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "scene_by_name" }), Model(ModelSerializer { class: Py(0x556d8cdbe150), serializer: Fields(GeneralFieldsSerializer { fields: {"type": SerField { key_py: Py(0x7f80f1a3cbf8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f80df02f3b0)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"default_scene"}, expected_py: None, name: "literal['default_scene']" }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 1 }), has_extra: false, root_model: false, name: "default_scene" }), Model(ModelSerializer { class: Py(0x556d8cac5940), serializer: Fields(GeneralFieldsSerializer { fields: {"up": SerField { key_py: Py(0x7f80f06ab0f0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }, "forward": SerField { key_py: Py(0x7f80e155ae80), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "System" }), Enum(EnumSerializer { class: Py(0x556d8cad32d0), serializer: Some(Str(StrSerializer)) }), Enum(EnumSerializer { class: Py(0x556d8cac6b40), serializer: Some(Str(StrSerializer)) }), Model(ModelSerializer { class: Py(0x556d8cdcafd0), serializer: Fields(GeneralFieldsSerializer { fields: {"type": SerField { key_py: Py(0x7f80f1a3cbf8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f80df1d8db0)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"mesh_by_name"}, expected_py: None, name: "literal['mesh_by_name']" }) })), required: true }, "name": SerField { key_py: Py(0x7f80f1a3a950), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "mesh_by_name" }), Model(ModelSerializer { class: Py(0x556d8cdc94e0), serializer: Fields(GeneralFieldsSerializer { fields: {"type": SerField { key_py: Py(0x7f80f1a3cbf8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f80dedd9630)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"mesh_by_index"}, expected_py: None, name: "literal['mesh_by_index']" }) })), required: true }, "index": SerField { key_py: Py(0x7f80f19fae20), alias: None, alias_py: None, serializer: Some(Int(IntSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "mesh_by_index" }), Enum(EnumSerializer { class: Py(0x556d8cf2e950), serializer: Some(Str(StrSerializer)) }), Model(ModelSerializer { class: Py(0x556d8cac3080), serializer: Fields(GeneralFieldsSerializer { fields: {"axis": SerField { key_py: Py(0x7f80f00bca80), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: false })), required: true }, "direction": SerField { key_py: Py(0x7f80f06faaf0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: false })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "AxisDirectionPair" }), Model(ModelSerializer { class: Py(0x556d8cdc2c90), serializer: Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })], name: "Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]" }), has_extra: false, root_model: true, name: "RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="export", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de444730,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de3077f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "format",                         lookup_key: Simple {                             key: "format",                             py_key: Py(                                 0x00007f80de4a6340,                             ),                             path: LookupPath(                                 [                                     S(                                         "format",                                         Py(                                             0x00007f80de4a6370,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a390e8,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: TaggedUnion(                                     TaggedUnionValidator {                                         discriminator: LookupKey(                                             Simple {                                                 key: "type",                                                 py_key: Py(                                                     0x00007f80f1a3cbf8,                                                 ),                                                 path: LookupPath(                                                     [                                                         S(                                                             "type",                                                             Py(                                                                 0x00007f80f1a3cbf8,                                                             ),                                                         ),                                                     ],                                                 ),                                             },                                         ),                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "fbx": 0,                                                     "gltf": 1,                                                     "ply": 3,                                                     "stl": 5,                                                     "step": 4,                                                     "obj": 2,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "storage",                                                                         lookup_key: Simple {                                                                             key: "storage",                                                                             py_key: Py(                                                                                 0x00007f80de4a4a80,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "storage",                                                                                         Py(                                                                                             0x00007f80de4a4a50,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8cad7ae0,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "ascii": 0,                                                                                             "binary": 1,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80dee7ac30,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7acf0,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'ascii' or 'binary'",                                                                                 strict: false,                                                                                 class_repr: "FbxStorage",                                                                                 name: "str-enum[FbxStorage]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a4ab0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a5dd0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3a20,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "fbx": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3a20,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'fbx'",                                                                                         name: "literal['fbx']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['fbx']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "fbx",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8c818bd0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "fbx",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "presentation",                                                                         lookup_key: Simple {                                                                             key: "presentation",                                                                             py_key: Py(                                                                                 0x00007f80de304870,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "presentation",                                                                                         Py(                                                                                             0x00007f80de3057b0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80dedda370,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8cdbcce0,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "compact": 0,                                                                                             "pretty": 1,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80dee7adb0,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7ae70,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'compact' or 'pretty'",                                                                                 strict: false,                                                                                 class_repr: "GltfPresentation",                                                                                 name: "str-enum[GltfPresentation]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "storage",                                                                         lookup_key: Simple {                                                                             key: "storage",                                                                             py_key: Py(                                                                                 0x00007f80de4a5c50,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "storage",                                                                                         Py(                                                                                             0x00007f80de4a5c80,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8cdc6670,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "standard": 1,                                                                                             "embedded": 2,                                                                                             "binary": 0,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80dee7af30,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7aff0,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7b0b0,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'binary', 'standard' or 'embedded'",                                                                                 strict: false,                                                                                 class_repr: "GltfStorage",                                                                                 name: "str-enum[GltfStorage]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a5d10,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a5e30,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3c00,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "gltf": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3c00,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'gltf'",                                                                                         name: "literal['gltf']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['gltf']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "gltf",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cb6f3f0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "gltf",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de4a5e00,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de4a5e90,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a5e60,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a5f80,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1a3ad28,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "obj": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80f1a3ad28,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'obj'",                                                                                         name: "literal['obj']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['obj']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de4a5fb0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de4a5ef0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "obj",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cb71480,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "obj",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de4a5f20,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de4a5f50,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "selection",                                                                         lookup_key: Simple {                                                                             key: "selection",                                                                             py_key: Py(                                                                                 0x00007f80de304bb0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "selection",                                                                                         Py(                                                                                             0x00007f80de304c30,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80df1545f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "storage",                                                                         lookup_key: Simple {                                                                             key: "storage",                                                                             py_key: Py(                                                                                 0x00007f80de4a61f0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "storage",                                                                                         Py(                                                                                             0x00007f80de4a6220,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8cdbd750,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "ascii": 0,                                                                                             "binary_little_endian": 1,                                                                                             "binary_big_endian": 2,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80dee7b110,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7b170,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7b1d0,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'ascii', 'binary_little_endian' or 'binary_big_endian'",                                                                                 strict: false,                                                                                 class_repr: "PlyStorage",                                                                                 name: "str-enum[PlyStorage]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a6160,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a6130,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3db0,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "ply": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3db0,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'ply'",                                                                                         name: "literal['ply']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['ply']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de4a6040,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de4a60d0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "ply",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cb75940,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "ply",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de4a5fe0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de4a6010,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a6070,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a61c0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1a3c468,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "step": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80f1a3c468,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'step'",                                                                                         name: "literal['step']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['step']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "step",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cdd7f50,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "step",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de4a6190,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de4a60a0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "selection",                                                                         lookup_key: Simple {                                                                             key: "selection",                                                                             py_key: Py(                                                                                 0x00007f80de3040b0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "selection",                                                                                         Py(                                                                                             0x00007f80de3040f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80df1545f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "storage",                                                                         lookup_key: Simple {                                                                             key: "storage",                                                                             py_key: Py(                                                                                 0x00007f80de4a6250,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "storage",                                                                                         Py(                                                                                             0x00007f80de4a6100,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2696cd0,                                                                         ),                                                                         validator: StrEnum(                                                                             EnumValidator {                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                 class: Py(                                                                                     0x0000556d8cb6c740,                                                                                 ),                                                                                 lookup: LiteralLookup {                                                                                     expected_bool: None,                                                                                     expected_int: None,                                                                                     expected_str: Some(                                                                                         {                                                                                             "binary": 1,                                                                                             "ascii": 0,                                                                                         },                                                                                     ),                                                                                     expected_py_dict: None,                                                                                     expected_py_values: None,                                                                                     values: [                                                                                         Py(                                                                                             0x00007f80dee7b8f0,                                                                                         ),                                                                                         Py(                                                                                             0x00007f80dee7b950,                                                                                         ),                                                                                     ],                                                                                 },                                                                                 missing: None,                                                                                 expected_repr: "'ascii' or 'binary'",                                                                                 strict: false,                                                                                 class_repr: "StlStorage",                                                                                 name: "str-enum[StlStorage]",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4a6280,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4a62b0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3f60,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "stl": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3f60,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'stl'",                                                                                         name: "literal['stl']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['stl']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de4a62e0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de4a6310,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "stl",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cddbbc0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "stl",                                                     },                                                 ),                                             ],                                         },                                         from_attributes: true,                                         strict: false,                                         custom_error: None,                                         tags_repr: "'fbx', 'gltf', 'obj', 'ply', 'step', 'stl'",                                         discriminator_repr: "'type'",                                         name: "tagged-union[fbx,gltf,obj,ply,step,stl]",                                     },                                 ),                                 class: Py(                                     0x0000556d8cde7f00,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: true,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4a63a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4a63d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80ecbb6d30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "export": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80ecbb6d30,                                                 ),                                             ],                                         },                                         expected_repr: "'export'",                                         name: "literal['export']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['export']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "export",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d20ca40,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "export",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "index", lookup_key: Simple { key: "index", py_key: Py(0x7f80de4a5b00), path: LookupPath([S("index", Py(0x7f80de4a5aa0))]) }, name_py: Py(0x7f80f19fae20), validator: Int(IntValidator { strict: false }), frozen: false }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py(0x7f80de4a5a40), path: LookupPath([S("type", Py(0x7f80de4a5a10))]) }, name_py: Py(0x7f80f1a3cbf8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f80df02edb0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"scene_by_index": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80df02edb0)] }, expected_repr: "'scene_by_index'", name: "literal['scene_by_index']" }), validate_default: false, copy_default: false, name: "default[literal['scene_by_index']]", undefined: Py(0x7f80e0935e70) }), frozen: false }], model_name: "scene_by_index", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cdbf8e0), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "scene_by_index" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cac6b40), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"z": 1, "y": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79d30), Py(0x7f80dee79d90)] }, missing: None, expected_repr: "'y' or 'z'", strict: false, class_repr: "Axis", name: "str-enum[Axis]" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cad32d0), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"negative": 1, "positive": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79eb0), Py(0x7f80dee79f10)] }, missing: None, expected_repr: "'positive' or 'negative'", strict: false, class_repr: "Direction", name: "str-enum[Direction]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "axis", lookup_key: Simple { key: "axis", py_key: Py(0x7f80de4a5bc0), path: LookupPath([S("axis", Py(0x7f80de4a5b60))]) }, name_py: Py(0x7f80f00bca80), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "direction", lookup_key: Simple { key: "direction", py_key: Py(0x7f80de305fb0), path: LookupPath([S("direction", Py(0x7f80de3075b0))]) }, name_py: Py(0x7f80f06faaf0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }], model_name: "AxisDirectionPair", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cac3080), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "AxisDirectionPair" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cf2e950), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"in": 2, "m": 3, "ft": 1, "mm": 4, "yd": 5, "cm": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79af0), Py(0x7f80dee7a030), Py(0x7f80dee7a090), Py(0x7f80dee79fd0), Py(0x7f80dee7a1b0), Py(0x7f80dee7a270)] }, missing: None, expected_repr: "'cm', 'ft', 'in', 'm', 'mm' or 'yd'", strict: false, class_repr: "UnitLength", name: "str-enum[UnitLength]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "forward", lookup_key: Simple { key: "forward", py_key: Py(0x7f80de4a5ce0), path: LookupPath([S("forward", Py(0x7f80de4a5ad0))]) }, name_py: Py(0x7f80e155ae80), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "up", lookup_key: Simple { key: "up", py_key: Py(0x7f80de4a5b90), path: LookupPath([S("up", Py(0x7f80de4a5980))]) }, name_py: Py(0x7f80f06ab0f0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }], model_name: "System", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cac5940), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "System" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7f80de4a5a70), path: LookupPath([S("name", Py(0x7f80de4a4c60))]) }, name_py: Py(0x7f80f1a3a950), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py(0x7f80de4a4cf0), path: LookupPath([S("type", Py(0x7f80de4a4ba0))]) }, name_py: Py(0x7f80f1a3cbf8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f80deddb730)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"scene_by_name": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80deddb730)] }, expected_repr: "'scene_by_name'", name: "literal['scene_by_name']" }), validate_default: false, copy_default: false, name: "default[literal['scene_by_name']]", undefined: Py(0x7f80e0935e70) }), frozen: false }], model_name: "scene_by_name", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cdc79f0), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "scene_by_name" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7f80de4a49f0), path: LookupPath([S("name", Py(0x7f80de4a49c0))]) }, name_py: Py(0x7f80f1a3a950), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py(0x7f80de4a4b10), path: LookupPath([S("type", Py(0x7f80de4a4ae0))]) }, name_py: Py(0x7f80f1a3cbf8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f80df1d8db0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"mesh_by_name": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80df1d8db0)] }, expected_repr: "'mesh_by_name'", name: "literal['mesh_by_name']" }), validate_default: false, copy_default: false, name: "default[literal['mesh_by_name']]", undefined: Py(0x7f80e0935e70) }), frozen: false }], model_name: "mesh_by_name", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cdcafd0), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "mesh_by_name" }), Model(ModelValidator { revalidate: Never, validator: TaggedUnion(TaggedUnionValidator { discriminator: LookupKey(Simple { key: "type", py_key: Py(0x7f80f1a3cbf8), path: LookupPath([S("type", Py(0x7f80f1a3cbf8))]) }), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"mesh_by_index": 3, "default_scene": 0, "mesh_by_name": 4, "scene_by_index": 1, "scene_by_name": 2}), expected_py_dict: None, expected_py_values: None, values: [DefinitionRef(DefinitionRefValidator { definition: "default_scene" }), DefinitionRef(DefinitionRefValidator { definition: "scene_by_index" }), DefinitionRef(DefinitionRefValidator { definition: "scene_by_name" }), DefinitionRef(DefinitionRefValidator { definition: "mesh_by_index" }), DefinitionRef(DefinitionRefValidator { definition: "mesh_by_name" })] }, from_attributes: true, strict: false, custom_error: None, tags_repr: "'default_scene', 'scene_by_index', 'scene_by_name', 'mesh_by_index', 'mesh_by_name'", discriminator_repr: "'type'", name: "tagged-union[default_scene,scene_by_index,scene_by_name,mesh_by_index,mesh_by_name]" }), class: Py(0x556d8cdc2c90), post_init: None, frozen: false, custom_init: false, root_model: true, undefined: Py(0x7f80e0935e70), name: "RootModel[Annotated[Union[default_scene, scene_by_index, scene_by_name, mesh_by_index, mesh_by_name], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "type", lookup_key: Simple { key: "type", py_key: Py(0x7f80de4a5920), path: LookupPath([S("type", Py(0x7f80de4a5950))]) }, name_py: Py(0x7f80f1a3cbf8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f80df02f3b0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"default_scene": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80df02f3b0)] }, expected_repr: "'default_scene'", name: "literal['default_scene']" }), validate_default: false, copy_default: false, name: "default[literal['default_scene']]", undefined: Py(0x7f80e0935e70) }), frozen: false }], model_name: "default_scene", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cdbe150), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "default_scene" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "index", lookup_key: Simple { key: "index", py_key: Py(0x7f80de4a4bd0), path: LookupPath([S("index", Py(0x7f80de4a4b40))]) }, name_py: Py(0x7f80f19fae20), validator: Int(IntValidator { strict: false }), frozen: false }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py(0x7f80de4a4d20), path: LookupPath([S("type", Py(0x7f80de4a4990))]) }, name_py: Py(0x7f80f1a3cbf8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f80dedd9630)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"mesh_by_index": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dedd9630)] }, expected_repr: "'mesh_by_index'", name: "literal['mesh_by_index']" }), validate_default: false, copy_default: false, name: "default[literal['mesh_by_index']]", undefined: Py(0x7f80e0935e70) }), frozen: false }], model_name: "mesh_by_index", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cdc94e0), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "mesh_by_index" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], format: pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], type: Literal['export'] = 'export') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
format: RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'format': FieldInfo(annotation=RootModel[Annotated[Union[fbx, gltf, obj, ply, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], required=True), 'type': FieldInfo(annotation=Literal['export'], required=False, default='export')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['export'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.extend_path(**data)[source][source]

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.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'segment': <class 'pydantic.root_model.RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'type': typing.Literal['extend_path']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'kittycad.models.angle.Angle'>, 'config': {'title': 'Angle'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.angle.Angle'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.angle.Angle'>>]}, 'ref': 'kittycad.models.angle.Angle:93928997062896', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_angle.UnitAngle:93928997104896', 'type': 'definition-ref'}, 'type': 'model-field'}, 'value': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Angle', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <enum 'UnitAngle'>, 'members': [UnitAngle.DEGREES, UnitAngle.RADIANS], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_angle.UnitAngle:93928997104896', 'sub_type': 'str', 'type': 'enum'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.extend_path'>, 'config': {'title': 'extend_path'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.extend_path'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.extend_path'>>]}, 'ref': 'kittycad.models.modeling_cmd.extend_path:93929007206944', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'segment': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191461450640]", 'root_model': True, 'schema': {'choices': {'arc': {'cls': <class 'kittycad.models.path_segment.arc'>, 'config': {'title': 'arc'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.path_segment.arc'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.path_segment.arc'>>]}, 'ref': 'kittycad.models.path_segment.arc:93929007299712', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'center': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'end': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.angle.Angle:93928997062896', 'type': 'definition-ref'}, 'type': 'model-field'}, 'radius': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'relative': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'start': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.angle.Angle:93928997062896', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'arc', 'schema': {'expected': ['arc'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'arc', 'type': 'model-fields'}, 'type': 'model'}, 'bezier': {'cls': <class 'kittycad.models.path_segment.bezier'>, 'config': {'title': 'bezier'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.path_segment.bezier'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.path_segment.bezier'>>]}, 'ref': 'kittycad.models.path_segment.bezier:93929007047824', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'control1': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'control2': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'end': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'relative': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'bezier', 'schema': {'expected': ['bezier'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'bezier', 'type': 'model-fields'}, 'type': 'model'}, 'line': {'cls': <class 'kittycad.models.path_segment.line'>, 'config': {'title': 'line'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.path_segment.line'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.path_segment.line'>>]}, 'ref': 'kittycad.models.path_segment.line:93929003223968', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'end': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'relative': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'line', 'schema': {'expected': ['line'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'line', 'type': 'model-fields'}, 'type': 'model'}, 'tangential_arc': {'cls': <class 'kittycad.models.path_segment.tangential_arc'>, 'config': {'title': 'tangential_arc'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.path_segment.tangential_arc'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.path_segment.tangential_arc'>>]}, 'ref': 'kittycad.models.path_segment.tangential_arc:93929007067744', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'offset': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.angle.Angle:93928997062896', 'type': 'definition-ref'}, 'type': 'model-field'}, 'radius': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'tangential_arc', 'schema': {'expected': ['tangential_arc'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'tangential_arc', 'type': 'model-fields'}, 'type': 'model'}, 'tangential_arc_to': {'cls': <class 'kittycad.models.path_segment.tangential_arc_to'>, 'config': {'title': 'tangential_arc_to'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.path_segment.tangential_arc_to'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.path_segment.tangential_arc_to'>>]}, 'ref': 'kittycad.models.path_segment.tangential_arc_to:93929007083584', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'angle_snap_increment': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'kittycad.models.angle.Angle:93928997062896', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'to': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'tangential_arc_to', 'schema': {'expected': ['tangential_arc_to'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'tangential_arc_to', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'extend_path', 'schema': {'expected': ['extend_path'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'extend_path', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1bd220,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "path": SerField {                         key_py: Py(                             0x00007f80f1a3b228,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e11cd8f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "extend_path",                                             },                                             expected_py: None,                                             name: "literal['extend_path']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "segment": SerField {                         key_py: Py(                             0x00007f80f09d9e60,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d1a44e0,                                     ),                                     serializer: Union(                                         UnionSerializer {                                             choices: [                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cdf0ba0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "end": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "relative": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Bool(                                                                                 BoolSerializer,                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1a3a1d0,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "line",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['line']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "line",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d1d3c80,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "center": SerField {                                                                         key_py: Py(                                                                             0x00007f80f0f08150,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Model(                                                                                 ModelSerializer {                                                                                     class: Py(                                                                                         0x0000556d8d190a40,                                                                                     ),                                                                                     serializer: Fields(                                                                                         GeneralFieldsSerializer {                                                                                             fields: {                                                                                                 "y": SerField {                                                                                                     key_py: Py(                                                                                                         0x00007f80f1a3e7f8,                                                                                                     ),                                                                                                     alias: None,                                                                                                     alias_py: None,                                                                                                     serializer: Some(                                                                                                         Float(                                                                                                             FloatSerializer {                                                                                                                 inf_nan_mode: Null,                                                                                                             },                                                                                                         ),                                                                                                     ),                                                                                                     required: true,                                                                                                 },                                                                                                 "x": SerField {                                                                                                     key_py: Py(                                                                                                         0x00007f80f1a3d0b8,                                                                                                     ),                                                                                                     alias: None,                                                                                                     alias_py: None,                                                                                                     serializer: Some(                                                                                                         Float(                                                                                                             FloatSerializer {                                                                                                                 inf_nan_mode: Null,                                                                                                             },                                                                                                         ),                                                                                                     ),                                                                                                     required: true,                                                                                                 },                                                                                             },                                                                                             computed_fields: Some(                                                                                                 ComputedFields(                                                                                                     [],                                                                                                 ),                                                                                             ),                                                                                             mode: SimpleDict,                                                                                             extra_serializer: None,                                                                                             filter: SchemaFilter {                                                                                                 include: None,                                                                                                 exclude: None,                                                                                             },                                                                                             required_fields: 2,                                                                                         },                                                                                     ),                                                                                     has_extra: false,                                                                                     root_model: false,                                                                                     name: "Point2d",                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "relative": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Bool(                                                                                 BoolSerializer,                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "start": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3c340,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80e1ef3420,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "arc",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['arc']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "radius": SerField {                                                                         key_py: Py(                                                                             0x00007f80e14e1d70,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Float(                                                                                 FloatSerializer {                                                                                     inf_nan_mode: Null,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "end": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 6,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "arc",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d196490,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "control1": SerField {                                                                         key_py: Py(                                                                             0x00007f80de492570,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "end": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "control2": SerField {                                                                         key_py: Py(                                                                             0x00007f80de4911b0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80e2621b90,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "bezier",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['bezier']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "relative": SerField {                                                                         key_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Bool(                                                                                 BoolSerializer,                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 5,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "bezier",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d19b260,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80de4ba470,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "tangential_arc",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['tangential_arc']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "offset": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3ad88,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "radius": SerField {                                                                         key_py: Py(                                                                             0x00007f80e14e1d70,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Float(                                                                                 FloatSerializer {                                                                                     inf_nan_mode: Null,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "tangential_arc",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8d19f040,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "angle_snap_increment": SerField {                                                                         key_py: Py(                                                                             0x00007f80de4ba6f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1947100,                                                                                         ),                                                                                     ),                                                                                     serializer: Nullable(                                                                                         NullableSerializer {                                                                                             serializer: Recursive(                                                                                                 DefinitionRefSerializer {                                                                                                     definition: "...",                                                                                                     retry_with_lax_check: true,                                                                                                 },                                                                                             ),                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "to": SerField {                                                                         key_py: Py(                                                                             0x00007f80f0bba730,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80de4ba670,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "tangential_arc_to",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['tangential_arc_to']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "tangential_arc_to",                                                     },                                                 ),                                             ],                                             name: "Union[line, arc, bezier, tangential_arc, tangential_arc_to]",                                         },                                     ),                                     has_extra: false,                                     root_model: true,                                     name: "RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "extend_path",     }, ), definitions=[Enum(EnumSerializer { class: Py(0x556d8c81ad00), serializer: Some(Str(StrSerializer)) }), Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" }), Model(ModelSerializer { class: Py(0x556d8c8108f0), serializer: Fields(GeneralFieldsSerializer { fields: {"value": SerField { key_py: Py(0x7f80f1a3cdc0), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "unit": SerField { key_py: Py(0x7f80f00c29a0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: false })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "Angle" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="extend_path", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path",                         lookup_key: Simple {                             key: "path",                             py_key: Py(                                 0x00007f80de477780,                             ),                             path: LookupPath(                                 [                                     S(                                         "path",                                         Py(                                             0x00007f80de4776c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b228,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x0000556d8d039790,                                 ),                                 config: Py(                                     0x00007f80de4719c0,                                 ),                                 name: "function-after[ModelingCmdId(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "segment",                         lookup_key: Simple {                             key: "segment",                             py_key: Py(                                 0x00007f80de4756e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "segment",                                         Py(                                             0x00007f80de494660,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f09d9e60,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: TaggedUnion(                                     TaggedUnionValidator {                                         discriminator: LookupKey(                                             Simple {                                                 key: "type",                                                 py_key: Py(                                                     0x00007f80f1a3cbf8,                                                 ),                                                 path: LookupPath(                                                     [                                                         S(                                                             "type",                                                             Py(                                                                 0x00007f80f1a3cbf8,                                                             ),                                                         ),                                                     ],                                                 ),                                             },                                         ),                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "arc": 1,                                                     "line": 0,                                                     "tangential_arc_to": 4,                                                     "bezier": 2,                                                     "tangential_arc": 3,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "end",                                                                         lookup_key: Simple {                                                                             key: "end",                                                                             py_key: Py(                                                                                 0x00007f80de4777b0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "end",                                                                                         Py(                                                                                             0x00007f80de476c10,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "relative",                                                                         lookup_key: Simple {                                                                             key: "relative",                                                                             py_key: Py(                                                                                 0x00007f80de41f5b0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "relative",                                                                                         Py(                                                                                             0x00007f80de478330,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         validator: Bool(                                                                             BoolValidator {                                                                                 strict: false,                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de476d30,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de476c40,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1a3a1d0,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "line": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80f1a3a1d0,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'line'",                                                                                         name: "literal['line']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['line']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "line",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cdf0ba0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "line",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "center",                                                                         lookup_key: Simple {                                                                             key: "center",                                                                             py_key: Py(                                                                                 0x00007f80de476c70,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "center",                                                                                         Py(                                                                                             0x00007f80de476bb0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f0f08150,                                                                         ),                                                                         validator: Model(                                                                             ModelValidator {                                                                                 revalidate: Never,                                                                                 validator: ModelFields(                                                                                     ModelFieldsValidator {                                                                                         fields: [                                                                                             Field {                                                                                                 name: "x",                                                                                                 lookup_key: Simple {                                                                                                     key: "x",                                                                                                     py_key: Py(                                                                                                         0x00007f80f1a3e7c8,                                                                                                     ),                                                                                                     path: LookupPath(                                                                                                         [                                                                                                             S(                                                                                                                 "x",                                                                                                                 Py(                                                                                                                     0x00007f80f1a3e7c8,                                                                                                                 ),                                                                                                             ),                                                                                                         ],                                                                                                     ),                                                                                                 },                                                                                                 name_py: Py(                                                                                                     0x00007f80f1a3d0b8,                                                                                                 ),                                                                                                 validator: FunctionAfter(                                                                                                     FunctionAfterValidator {                                                                                                         validator: Float(                                                                                                             FloatValidator {                                                                                                                 strict: false,                                                                                                                 allow_inf_nan: true,                                                                                                             },                                                                                                         ),                                                                                                         func: Py(                                                                                                             0x0000556d8cfac870,                                                                                                         ),                                                                                                         config: Py(                                                                                                             0x00007f80de4728c0,                                                                                                         ),                                                                                                         name: "function-after[LengthUnit(), float]",                                                                                                         field_name: None,                                                                                                         info_arg: false,                                                                                                     },                                                                                                 ),                                                                                                 frozen: false,                                                                                             },                                                                                             Field {                                                                                                 name: "y",                                                                                                 lookup_key: Simple {                                                                                                     key: "y",                                                                                                     py_key: Py(                                                                                                         0x00007f80f1a3e7f8,                                                                                                     ),                                                                                                     path: LookupPath(                                                                                                         [                                                                                                             S(                                                                                                                 "y",                                                                                                                 Py(                                                                                                                     0x00007f80f1a3e7f8,                                                                                                                 ),                                                                                                             ),                                                                                                         ],                                                                                                     ),                                                                                                 },                                                                                                 name_py: Py(                                                                                                     0x00007f80f1a3e7f8,                                                                                                 ),                                                                                                 validator: FunctionAfter(                                                                                                     FunctionAfterValidator {                                                                                                         validator: Float(                                                                                                             FloatValidator {                                                                                                                 strict: false,                                                                                                                 allow_inf_nan: true,                                                                                                             },                                                                                                         ),                                                                                                         func: Py(                                                                                                             0x0000556d8cfac870,                                                                                                         ),                                                                                                         config: Py(                                                                                                             0x00007f80de4728c0,                                                                                                         ),                                                                                                         name: "function-after[LengthUnit(), float]",                                                                                                         field_name: None,                                                                                                         info_arg: false,                                                                                                     },                                                                                                 ),                                                                                                 frozen: false,                                                                                             },                                                                                         ],                                                                                         model_name: "Point2d",                                                                                         extra_behavior: Ignore,                                                                                         extras_validator: None,                                                                                         strict: false,                                                                                         from_attributes: false,                                                                                         loc_by_alias: true,                                                                                     },                                                                                 ),                                                                                 class: Py(                                                                                     0x0000556d8d190a40,                                                                                 ),                                                                                 post_init: None,                                                                                 frozen: false,                                                                                 custom_init: false,                                                                                 root_model: false,                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                                 name: "Point2d",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "end",                                                                         lookup_key: Simple {                                                                             key: "end",                                                                             py_key: Py(                                                                                 0x00007f80de476d60,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "end",                                                                                         Py(                                                                                             0x00007f80de476a90,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "Angle",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "radius",                                                                         lookup_key: Simple {                                                                             key: "radius",                                                                             py_key: Py(                                                                                 0x00007f80de476af0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "radius",                                                                                         Py(                                                                                             0x00007f80de476ac0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e14e1d70,                                                                         ),                                                                         validator: FunctionAfter(                                                                             FunctionAfterValidator {                                                                                 validator: Float(                                                                                     FloatValidator {                                                                                         strict: false,                                                                                         allow_inf_nan: true,                                                                                     },                                                                                 ),                                                                                 func: Py(                                                                                     0x0000556d8cfac870,                                                                                 ),                                                                                 config: Py(                                                                                     0x00007f80de472540,                                                                                 ),                                                                                 name: "function-after[LengthUnit(), float]",                                                                                 field_name: None,                                                                                 info_arg: false,                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "relative",                                                                         lookup_key: Simple {                                                                             key: "relative",                                                                             py_key: Py(                                                                                 0x00007f80de478230,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "relative",                                                                                         Py(                                                                                             0x00007f80de4782b0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         validator: Bool(                                                                             BoolValidator {                                                                                 strict: false,                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "start",                                                                         lookup_key: Simple {                                                                             key: "start",                                                                             py_key: Py(                                                                                 0x00007f80de476be0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "start",                                                                                         Py(                                                                                             0x00007f80de476b80,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3c340,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "Angle",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de476b20,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de476a60,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80e1ef3420,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "arc": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80e1ef3420,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'arc'",                                                                                         name: "literal['arc']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['arc']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "arc",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d1d3c80,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "arc",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "control1",                                                                         lookup_key: Simple {                                                                             key: "control1",                                                                             py_key: Py(                                                                                 0x00007f80de4781b0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "control1",                                                                                         Py(                                                                                             0x00007f80de478470,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80de492570,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "control2",                                                                         lookup_key: Simple {                                                                             key: "control2",                                                                             py_key: Py(                                                                                 0x00007f80de4781f0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "control2",                                                                                         Py(                                                                                             0x00007f80de4783f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80de4911b0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "end",                                                                         lookup_key: Simple {                                                                             key: "end",                                                                             py_key: Py(                                                                                 0x00007f80de476b50,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "end",                                                                                         Py(                                                                                             0x00007f80de4740f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a38900,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "relative",                                                                         lookup_key: Simple {                                                                             key: "relative",                                                                             py_key: Py(                                                                                 0x00007f80de473df0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "relative",                                                                                         Py(                                                                                             0x00007f80de473cf0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e2dd61f0,                                                                         ),                                                                         validator: Bool(                                                                             BoolValidator {                                                                                 strict: false,                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4749f0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de474d80,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80e2621b90,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "bezier": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80e2621b90,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'bezier'",                                                                                         name: "literal['bezier']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['bezier']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "bezier",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d196490,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "bezier",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "offset",                                                                         lookup_key: Simple {                                                                             key: "offset",                                                                             py_key: Py(                                                                                 0x00007f80de474d50,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "offset",                                                                                         Py(                                                                                             0x00007f80de475620,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3ad88,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "Angle",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "radius",                                                                         lookup_key: Simple {                                                                             key: "radius",                                                                             py_key: Py(                                                                                 0x00007f80de474ba0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "radius",                                                                                         Py(                                                                                             0x00007f80de475590,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80e14e1d70,                                                                         ),                                                                         validator: FunctionAfter(                                                                             FunctionAfterValidator {                                                                                 validator: Float(                                                                                     FloatValidator {                                                                                         strict: false,                                                                                         allow_inf_nan: true,                                                                                     },                                                                                 ),                                                                                 func: Py(                                                                                     0x0000556d8cfac870,                                                                                 ),                                                                                 config: Py(                                                                                     0x00007f80de471e40,                                                                                 ),                                                                                 name: "function-after[LengthUnit(), float]",                                                                                 field_name: None,                                                                                 info_arg: false,                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4756b0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4758c0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80de4ba470,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "tangential_arc": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80de4ba470,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'tangential_arc'",                                                                                         name: "literal['tangential_arc']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['tangential_arc']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "tangential_arc",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d19b260,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "tangential_arc",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "angle_snap_increment",                                                                         lookup_key: Simple {                                                                             key: "angle_snap_increment",                                                                             py_key: Py(                                                                                 0x00007f80de473c70,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "angle_snap_increment",                                                                                         Py(                                                                                             0x00007f80de473bb0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80de4ba6f0,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Nullable(                                                                                     NullableValidator {                                                                                         validator: DefinitionRef(                                                                                             DefinitionRefValidator {                                                                                                 definition: "Angle",                                                                                             },                                                                                         ),                                                                                         name: "nullable[Angle]",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[nullable[Angle]]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "to",                                                                         lookup_key: Simple {                                                                             key: "to",                                                                             py_key: Py(                                                                                 0x00007f80de475560,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "to",                                                                                         Py(                                                                                             0x00007f80de475680,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f0bba730,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de4755c0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de4755f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80de4ba670,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "tangential_arc_to": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80de4ba670,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'tangential_arc_to'",                                                                                         name: "literal['tangential_arc_to']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['tangential_arc_to']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "tangential_arc_to",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8d19f040,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "tangential_arc_to",                                                     },                                                 ),                                             ],                                         },                                         from_attributes: true,                                         strict: false,                                         custom_error: None,                                         tags_repr: "'line', 'arc', 'bezier', 'tangential_arc', 'tangential_arc_to'",                                         discriminator_repr: "'type'",                                         name: "tagged-union[line,arc,bezier,tangential_arc,tangential_arc_to]",                                     },                                 ),                                 class: Py(                                     0x0000556d8d1a44e0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: true,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de494ae0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4946f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e11cd8f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "extend_path": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e11cd8f0,                                                 ),                                             ],                                         },                                         expected_repr: "'extend_path'",                                         name: "literal['extend_path']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['extend_path']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "extend_path",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1bd220,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "extend_path",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8c81ad00), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"radians": 1, "degrees": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dede6c90), Py(0x7f80dede6cf0)] }, missing: None, expected_repr: "'degrees' or 'radians'", strict: false, class_repr: "UnitAngle", name: "str-enum[UnitAngle]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "unit", lookup_key: Simple { key: "unit", py_key: Py(0x7f80de477720), path: LookupPath([S("unit", Py(0x7f80de477750))]) }, name_py: Py(0x7f80f00c29a0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "value", lookup_key: Simple { key: "value", py_key: Py(0x7f80de477840), path: LookupPath([S("value", Py(0x7f80de4777e0))]) }, name_py: Py(0x7f80f1a3cdc0), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Angle", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c8108f0), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Angle" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path: kittycad.models.modeling_cmd_id.ModelingCmdId, segment: pydantic.root_model.RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], type: Literal['extend_path'] = 'extend_path') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path': FieldInfo(annotation=ModelingCmdId, required=True), 'segment': FieldInfo(annotation=RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], required=True), 'type': FieldInfo(annotation=Literal['extend_path'], required=False, default='extend_path')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path: ModelingCmdId[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

segment: RootModel[Annotated[Union[line, arc, bezier, tangential_arc, tangential_arc_to], FieldInfo(annotation=NoneType, required=True, discriminator='type')]][source]
type: Literal['extend_path'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.extrude(**data)[source][source]

Command for extruding a solid 2d.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'cap': <class 'bool'>, 'distance': <class 'kittycad.models.length_unit.LengthUnit'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'target': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': typing.Literal['extrude']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.extrude'>, 'config': {'title': 'extrude'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.extrude'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.extrude'>>]}, 'ref': 'kittycad.models.modeling_cmd.extrude:93929007223072', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cap': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'distance': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'target': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'extrude', 'schema': {'expected': ['extrude'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'extrude', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1c1120,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "distance": SerField {                         key_py: Py(                             0x00007f80f08b1cb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "cap": SerField {                         key_py: Py(                             0x00007f80ecb3cf30,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "target": SerField {                         key_py: Py(                             0x00007f80f1a3c6e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de474570,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "extrude",                                             },                                             expected_py: None,                                             name: "literal['extrude']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "extrude",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="extrude", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "cap",                         lookup_key: Simple {                             key: "cap",                             py_key: Py(                                 0x00007f80de495650,                             ),                             path: LookupPath(                                 [                                     S(                                         "cap",                                         Py(                                             0x00007f80de495680,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80ecb3cf30,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "distance",                         lookup_key: Simple {                             key: "distance",                             py_key: Py(                                 0x00007f80de471330,                             ),                             path: LookupPath(                                 [                                     S(                                         "distance",                                         Py(                                             0x00007f80de471370,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f08b1cb0,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de473a40,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "target",                         lookup_key: Simple {                             key: "target",                             py_key: Py(                                 0x00007f80de4956b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "target",                                         Py(                                             0x00007f80de4956e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3c6e0,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x0000556d8d039790,                                 ),                                 config: Py(                                     0x00007f80de473a40,                                 ),                                 name: "function-after[ModelingCmdId(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de495710,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de495740,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de474570,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "extrude": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de474570,                                                 ),                                             ],                                         },                                         expected_repr: "'extrude'",                                         name: "literal['extrude']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['extrude']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "extrude",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1c1120,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "extrude",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, cap: bool, distance: kittycad.models.length_unit.LengthUnit, target: kittycad.models.modeling_cmd_id.ModelingCmdId, type: Literal['extrude'] = 'extrude') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

cap: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

distance: LengthUnit[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'cap': FieldInfo(annotation=bool, required=True), 'distance': FieldInfo(annotation=LengthUnit, required=True), 'target': FieldInfo(annotation=ModelingCmdId, required=True), 'type': FieldInfo(annotation=Literal['extrude'], required=False, default='extrude')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

target: ModelingCmdId[source]
type: Literal['extrude'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.face_get_center(**data)[source][source]

Obtains the surface “center of mass”

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['face_get_center']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.face_get_center'>, 'config': {'title': 'face_get_center'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.face_get_center'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.face_get_center'>>]}, 'ref': 'kittycad.models.modeling_cmd.face_get_center:93929008259264', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'face_get_center', 'schema': {'expected': ['face_get_center'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'face_get_center', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2be0c0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4db730,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "face_get_center",                                             },                                             expected_py: None,                                             name: "literal['face_get_center']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "face_get_center",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="face_get_center", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3c22b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3c2270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3bf330,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3bf360,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4db730,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "face_get_center": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4db730,                                                 ),                                             ],                                         },                                         expected_repr: "'face_get_center'",                                         name: "literal['face_get_center']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['face_get_center']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "face_get_center",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2be0c0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "face_get_center",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_id: str, type: Literal['face_get_center'] = 'face_get_center') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['face_get_center'], required=False, default='face_get_center')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['face_get_center'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.face_get_gradient(**data)[source][source]

Determines the gradient (dFdu, dFdv) + normal vector on a brep face evaluated by parameters u,v

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['face_get_gradient'], 'uv': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.face_get_gradient'>, 'config': {'title': 'face_get_gradient'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.face_get_gradient'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.face_get_gradient'>>]}, 'ref': 'kittycad.models.modeling_cmd.face_get_gradient:93929008270928', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'face_get_gradient', 'schema': {'expected': ['face_get_gradient'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'uv': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'face_get_gradient', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2c0e50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "uv": SerField {                         key_py: Py(                             0x00007f80e07e3f90,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4dbc30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "face_get_gradient",                                             },                                             expected_py: None,                                             name: "literal['face_get_gradient']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "face_get_gradient",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="face_get_gradient", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3c29b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3c2870,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3bffc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3c8030,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4dbc30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "face_get_gradient": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4dbc30,                                                 ),                                             ],                                         },                                         expected_repr: "'face_get_gradient'",                                         name: "literal['face_get_gradient']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['face_get_gradient']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "uv",                         lookup_key: Simple {                             key: "uv",                             py_key: Py(                                 0x00007f80de3c8060,                             ),                             path: LookupPath(                                 [                                     S(                                         "uv",                                         Py(                                             0x00007f80de3c8090,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e07e3f90,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3c1f80,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3c1f80,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "face_get_gradient",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2c0e50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "face_get_gradient",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_id: str, type: Literal['face_get_gradient'] = 'face_get_gradient', uv: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['face_get_gradient'], required=False, default='face_get_gradient'), 'uv': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['face_get_gradient'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

uv: Point2d[source]
classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.face_get_position(**data)[source][source]

Determines a position on a brep face evaluated by parameters u,v

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['face_get_position'], 'uv': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.face_get_position'>, 'config': {'title': 'face_get_position'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.face_get_position'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.face_get_position'>>]}, 'ref': 'kittycad.models.modeling_cmd.face_get_position:93929008237312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'face_get_position', 'schema': {'expected': ['face_get_position'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'uv': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'face_get_position', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2b8b00,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "uv": SerField {                         key_py: Py(                             0x00007f80e07e3f90,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4dbdb0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "face_get_position",                                             },                                             expected_py: None,                                             name: "literal['face_get_position']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "face_get_position",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="face_get_position", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de352d30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3c1470,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3bdbc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3bdc20,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4dbdb0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "face_get_position": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4dbdb0,                                                 ),                                             ],                                         },                                         expected_repr: "'face_get_position'",                                         name: "literal['face_get_position']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['face_get_position']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "uv",                         lookup_key: Simple {                             key: "uv",                             py_key: Py(                                 0x00007f80de3bdc80,                             ),                             path: LookupPath(                                 [                                     S(                                         "uv",                                         Py(                                             0x00007f80de3bdcb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e07e3f90,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3c1400,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3c1400,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "face_get_position",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2b8b00,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "face_get_position",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_id: str, type: Literal['face_get_position'] = 'face_get_position', uv: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['face_get_position'], required=False, default='face_get_position'), 'uv': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['face_get_position'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

uv: Point2d[source]
classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.face_is_planar(**data)[source][source]

Determines whether a brep face is planar and returns its surface-local planar axes if so

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['face_is_planar']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.face_is_planar'>, 'config': {'title': 'face_is_planar'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.face_is_planar'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.face_is_planar'>>]}, 'ref': 'kittycad.models.modeling_cmd.face_is_planar:93929008222528', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'face_is_planar', 'schema': {'expected': ['face_is_planar'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'face_is_planar', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2b5140,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4d8af0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "face_is_planar",                                             },                                             expected_py: None,                                             name: "literal['face_is_planar']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "face_is_planar",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="face_is_planar", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3abb30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3abaf0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3bc570,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3bc5a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4d8af0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "face_is_planar": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4d8af0,                                                 ),                                             ],                                         },                                         expected_repr: "'face_is_planar'",                                         name: "literal['face_is_planar']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['face_is_planar']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "face_is_planar",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2b5140,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "face_is_planar",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_id: str, type: Literal['face_is_planar'] = 'face_is_planar') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['face_is_planar'], required=False, default='face_is_planar')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['face_is_planar'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.get_entity_type(**data)[source][source]

What type of entity is this?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['get_entity_type']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.get_entity_type'>, 'config': {'title': 'get_entity_type'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.get_entity_type'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.get_entity_type'>>]}, 'ref': 'kittycad.models.modeling_cmd.get_entity_type:93929008105104', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'get_entity_type', 'schema': {'expected': ['get_entity_type'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'get_entity_type', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d298690,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4db6b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "get_entity_type",                                             },                                             expected_py: None,                                             name: "literal['get_entity_type']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_id": SerField {                         key_py: Py(                             0x00007f80de514bb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "get_entity_type",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="get_entity_type", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_id",                         lookup_key: Simple {                             key: "entity_id",                             py_key: Py(                                 0x00007f80de384730,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_id",                                         Py(                                             0x00007f80de384830,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de514bb0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37e280,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37e2b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4db6b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "get_entity_type": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4db6b0,                                                 ),                                             ],                                         },                                         expected_repr: "'get_entity_type'",                                         name: "literal['get_entity_type']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['get_entity_type']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "get_entity_type",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d298690,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "get_entity_type",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_id: str, type: Literal['get_entity_type'] = 'get_entity_type') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['get_entity_type'], required=False, default='get_entity_type')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['get_entity_type'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.get_num_objects(**data)[source][source]

Get the number of objects in the scene

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['get_num_objects']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.get_num_objects'>, 'config': {'title': 'get_num_objects'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.get_num_objects'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.get_num_objects'>>]}, 'ref': 'kittycad.models.modeling_cmd.get_num_objects:93929009172960', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'get_num_objects', 'schema': {'expected': ['get_num_objects'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'get_num_objects', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_exit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_clear': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_get': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_extrusion_face_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'view_isometric': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d39d1e0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4db630,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "get_num_objects",                                             },                                             expected_py: None,                                             name: "literal['get_num_objects']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "get_num_objects",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="get_num_objects", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2f48d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2f4900,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4db630,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "get_num_objects": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4db630,                                                 ),                                             ],                                         },                                         expected_repr: "'get_num_objects'",                                         name: "literal['get_num_objects']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['get_num_objects']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "get_num_objects",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d39d1e0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "get_num_objects",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['get_num_objects'] = 'get_num_objects') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['get_num_objects'], required=False, default='get_num_objects')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['get_num_objects'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.get_sketch_mode_plane(**data)[source][source]

Get the plane for sketch mode.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['get_sketch_mode_plane']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.get_sketch_mode_plane'>, 'config': {'title': 'get_sketch_mode_plane'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.get_sketch_mode_plane'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.get_sketch_mode_plane'>>]}, 'ref': 'kittycad.models.modeling_cmd.get_sketch_mode_plane:93929008502144', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'get_sketch_mode_plane', 'schema': {'expected': ['get_sketch_mode_plane'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'get_sketch_mode_plane', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2f9580,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df4db070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "get_sketch_mode_plane",                                             },                                             expected_py: None,                                             name: "literal['get_sketch_mode_plane']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "get_sketch_mode_plane",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="get_sketch_mode_plane", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2009f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de200990,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df4db070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "get_sketch_mode_plane": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df4db070,                                                 ),                                             ],                                         },                                         expected_repr: "'get_sketch_mode_plane'",                                         name: "literal['get_sketch_mode_plane']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['get_sketch_mode_plane']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "get_sketch_mode_plane",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2f9580,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "get_sketch_mode_plane",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['get_sketch_mode_plane'] = 'get_sketch_mode_plane') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['get_sketch_mode_plane'], required=False, default='get_sketch_mode_plane')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['get_sketch_mode_plane'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.handle_mouse_drag_end(**data)[source][source]

Stop dragging the mouse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['handle_mouse_drag_end'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.handle_mouse_drag_end'>, 'config': {'title': 'handle_mouse_drag_end'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.handle_mouse_drag_end'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.handle_mouse_drag_end'>>]}, 'ref': 'kittycad.models.modeling_cmd.handle_mouse_drag_end:93929008765360', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'handle_mouse_drag_end', 'schema': {'expected': ['handle_mouse_drag_end'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'handle_mouse_drag_end', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3399b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bb470,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "handle_mouse_drag_end",                                             },                                             expected_py: None,                                             name: "literal['handle_mouse_drag_end']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "handle_mouse_drag_end",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="handle_mouse_drag_end", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de273e40,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de273ea0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bb470,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "handle_mouse_drag_end": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bb470,                                                 ),                                             ],                                         },                                         expected_repr: "'handle_mouse_drag_end'",                                         name: "literal['handle_mouse_drag_end']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['handle_mouse_drag_end']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de273f00,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de273f30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de276b40,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de276b40,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "handle_mouse_drag_end",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3399b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "handle_mouse_drag_end",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['handle_mouse_drag_end'] = 'handle_mouse_drag_end', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['handle_mouse_drag_end'], required=False, default='handle_mouse_drag_end'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['handle_mouse_drag_end'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.handle_mouse_drag_move(**data)[source][source]

Continue dragging the mouse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'sequence': typing.Optional[int], 'type': typing.Literal['handle_mouse_drag_move'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.handle_mouse_drag_move'>, 'config': {'title': 'handle_mouse_drag_move'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.handle_mouse_drag_move'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.handle_mouse_drag_move'>>]}, 'ref': 'kittycad.models.modeling_cmd.handle_mouse_drag_move:93929008752416', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'handle_mouse_drag_move', 'schema': {'expected': ['handle_mouse_drag_move'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'handle_mouse_drag_move', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d336720,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bb2b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "handle_mouse_drag_move",                                             },                                             expected_py: None,                                             name: "literal['handle_mouse_drag_move']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "handle_mouse_drag_move",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="handle_mouse_drag_move", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de2759b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de275970,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de272250,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2722b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bb2b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "handle_mouse_drag_move": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bb2b0,                                                 ),                                             ],                                         },                                         expected_repr: "'handle_mouse_drag_move'",                                         name: "literal['handle_mouse_drag_move']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['handle_mouse_drag_move']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de272310,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de272340,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de275900,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de275900,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "handle_mouse_drag_move",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d336720,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "handle_mouse_drag_move",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, sequence: Optional[int] = None, type: Literal['handle_mouse_drag_move'] = 'handle_mouse_drag_move', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['handle_mouse_drag_move'], required=False, default='handle_mouse_drag_move'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

sequence: Optional[int][source]
type: Literal['handle_mouse_drag_move'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.handle_mouse_drag_start(**data)[source][source]

Start dragging the mouse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['handle_mouse_drag_start'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.handle_mouse_drag_start'>, 'config': {'title': 'handle_mouse_drag_start'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.handle_mouse_drag_start'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.handle_mouse_drag_start'>>]}, 'ref': 'kittycad.models.modeling_cmd.handle_mouse_drag_start:93929008719312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'handle_mouse_drag_start', 'schema': {'expected': ['handle_mouse_drag_start'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'handle_mouse_drag_start', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d32e5d0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bb0b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "handle_mouse_drag_start",                                             },                                             expected_py: None,                                             name: "literal['handle_mouse_drag_start']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "handle_mouse_drag_start",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="handle_mouse_drag_start", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de26aeb0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de26ae80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bb0b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "handle_mouse_drag_start": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bb0b0,                                                 ),                                             ],                                         },                                         expected_repr: "'handle_mouse_drag_start'",                                         name: "literal['handle_mouse_drag_start']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['handle_mouse_drag_start']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de26afd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de26afa0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de252880,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de252880,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "handle_mouse_drag_start",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d32e5d0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "handle_mouse_drag_start",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['handle_mouse_drag_start'] = 'handle_mouse_drag_start', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['handle_mouse_drag_start'], required=False, default='handle_mouse_drag_start'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['handle_mouse_drag_start'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.highlight_set_entities(**data)[source][source]

Changes the current highlighted entity to these entities.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entities': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['highlight_set_entities']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.highlight_set_entities'>, 'config': {'title': 'highlight_set_entities'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.highlight_set_entities'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.highlight_set_entities'>>]}, 'ref': 'kittycad.models.modeling_cmd.highlight_set_entities:93929007933584', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entities': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'highlight_set_entities', 'schema': {'expected': ['highlight_set_entities'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'highlight_set_entities', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d26e890,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de492ff0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "highlight_set_entities",                                             },                                             expected_py: None,                                             name: "literal['highlight_set_entities']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entities": SerField {                         key_py: Py(                             0x00007f80e2d46ef0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "highlight_set_entities",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="highlight_set_entities", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entities",                         lookup_key: Simple {                             key: "entities",                             py_key: Py(                                 0x00007f80de33e9b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entities",                                         Py(                                             0x00007f80de33f6f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2d46ef0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de349e30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de349da0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de492ff0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "highlight_set_entities": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de492ff0,                                                 ),                                             ],                                         },                                         expected_repr: "'highlight_set_entities'",                                         name: "literal['highlight_set_entities']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['highlight_set_entities']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "highlight_set_entities",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d26e890,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "highlight_set_entities",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entities: List[str], type: Literal['highlight_set_entities'] = 'highlight_set_entities') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entities: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entities': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['highlight_set_entities'], required=False, default='highlight_set_entities')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['highlight_set_entities'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.highlight_set_entity(**data)[source][source]

Changes the current highlighted entity to whichever one is at the given window coordinate. If there’s no entity at this location, clears the highlight.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'selected_at_window': <class 'kittycad.models.point2d.Point2d'>, 'sequence': typing.Optional[int], 'type': typing.Literal['highlight_set_entity']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.highlight_set_entity'>, 'config': {'title': 'highlight_set_entity'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.highlight_set_entity'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.highlight_set_entity'>>]}, 'ref': 'kittycad.models.modeling_cmd.highlight_set_entity:93929007922768', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'selected_at_window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'highlight_set_entity', 'schema': {'expected': ['highlight_set_entity'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'highlight_set_entity', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d26be50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19a2f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "highlight_set_entity",                                             },                                             expected_py: None,                                             name: "literal['highlight_set_entity']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "selected_at_window": SerField {                         key_py: Py(                             0x00007f80de4926f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "highlight_set_entity",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="highlight_set_entity", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "selected_at_window",                         lookup_key: Simple {                             key: "selected_at_window",                             py_key: Py(                                 0x00007f80de351970,                             ),                             path: LookupPath(                                 [                                     S(                                         "selected_at_window",                                         Py(                                             0x00007f80de351930,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4926f0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de351700,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de351700,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de3519f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de3519b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3496e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de349710,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19a2f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "highlight_set_entity": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19a2f0,                                                 ),                                             ],                                         },                                         expected_repr: "'highlight_set_entity'",                                         name: "literal['highlight_set_entity']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['highlight_set_entity']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "highlight_set_entity",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d26be50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "highlight_set_entity",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, selected_at_window: kittycad.models.point2d.Point2d, sequence: Optional[int] = None, type: Literal['highlight_set_entity'] = 'highlight_set_entity') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'selected_at_window': FieldInfo(annotation=Point2d, required=True), 'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['highlight_set_entity'], required=False, default='highlight_set_entity')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

selected_at_window: Point2d[source]
sequence: Optional[int][source]
type: Literal['highlight_set_entity'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.import_files(**data)[source][source]

Import files to the current model.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'files': typing.List[kittycad.models.import_file.ImportFile], 'format': <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['import_files']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>, 'config': {'title': 'AxisDirectionPair'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.axis_direction_pair.AxisDirectionPair'>>]}, 'ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis.Axis:93928999906112', 'type': 'definition-ref'}, 'type': 'model-field'}, 'direction': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.direction.Direction:93928999957200', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'AxisDirectionPair', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <enum 'Axis'>, 'members': [Axis.Y, Axis.Z], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.axis.Axis:93928999906112', 'sub_type': 'str', 'type': 'enum'}, {'cls': <enum 'Direction'>, 'members': [Direction.POSITIVE, Direction.NEGATIVE], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.direction.Direction:93928999957200', 'sub_type': 'str', 'type': 'enum'}, {'cls': <class 'kittycad.models.system.System'>, 'config': {'title': 'System'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.system.System'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.system.System'>>]}, 'ref': 'kittycad.models.system.System:93928999901504', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'forward': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'type': 'definition-ref'}, 'type': 'model-field'}, 'up': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.axis_direction_pair.AxisDirectionPair:93928999891072', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'System', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <enum 'UnitLength'>, 'members': [UnitLength.CM, UnitLength.FT, UnitLength.IN, UnitLength.M, UnitLength.MM, UnitLength.YD], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'sub_type': 'str', 'type': 'enum'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.import_files'>, 'config': {'title': 'import_files'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.import_files'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.import_files'>>]}, 'ref': 'kittycad.models.modeling_cmd.import_files:93928997514816', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'files': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'cls': <class 'kittycad.models.import_file.ImportFile'>, 'config': {'title': 'ImportFile'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.import_file.ImportFile'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.import_file.ImportFile'>>]}, 'ref': 'kittycad.models.import_file.ImportFile:93929006416416', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'data': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bytes'}, 'type': 'model-field'}, 'path': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}}, 'model_name': 'ImportFile', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'list'}, 'type': 'model-field'}, 'format': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:93929004761328[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:140191475849776]", 'root_model': True, 'schema': {'choices': {'fbx': {'cls': <class 'kittycad.models.input_format.fbx'>, 'config': {'title': 'fbx'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.fbx'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.fbx'>>]}, 'ref': 'kittycad.models.input_format.fbx:93928999968976', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'fbx', 'schema': {'expected': ['fbx'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'fbx', 'type': 'model-fields'}, 'type': 'model'}, 'gltf': {'cls': <class 'kittycad.models.input_format.gltf'>, 'config': {'title': 'gltf'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.gltf'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.gltf'>>]}, 'ref': 'kittycad.models.input_format.gltf:93929004430176', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'gltf', 'schema': {'expected': ['gltf'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'gltf', 'type': 'model-fields'}, 'type': 'model'}, 'obj': {'cls': <class 'kittycad.models.input_format.obj'>, 'config': {'title': 'obj'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.obj'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.obj'>>]}, 'ref': 'kittycad.models.input_format.obj:93929004435328', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'obj', 'schema': {'expected': ['obj'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'obj', 'type': 'model-fields'}, 'type': 'model'}, 'ply': {'cls': <class 'kittycad.models.input_format.ply'>, 'config': {'title': 'ply'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.ply'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.ply'>>]}, 'ref': 'kittycad.models.input_format.ply:93929004456608', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'ply', 'schema': {'expected': ['ply'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'ply', 'type': 'model-fields'}, 'type': 'model'}, 'sldprt': {'cls': <class 'kittycad.models.input_format.sldprt'>, 'config': {'title': 'sldprt'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.sldprt'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.sldprt'>>]}, 'ref': 'kittycad.models.input_format.sldprt:93928999915136', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'split_closed_faces': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'sldprt', 'schema': {'expected': ['sldprt'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'sldprt', 'type': 'model-fields'}, 'type': 'model'}, 'step': {'cls': <class 'kittycad.models.input_format.step'>, 'config': {'title': 'step'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.step'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.step'>>]}, 'ref': 'kittycad.models.input_format.step:93928999924704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'split_closed_faces': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'step', 'schema': {'expected': ['step'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'step', 'type': 'model-fields'}, 'type': 'model'}, 'stl': {'cls': <class 'kittycad.models.input_format.stl'>, 'config': {'title': 'stl'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.input_format.stl'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.input_format.stl'>>]}, 'ref': 'kittycad.models.input_format.stl:93928999934416', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'coords': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.system.System:93928999901504', 'type': 'definition-ref'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'stl', 'schema': {'expected': ['stl'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'stl', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'import_files', 'schema': {'expected': ['import_files'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'import_files', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8c87ee40,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "files": SerField {                         key_py: Py(                             0x00007f80f19f0ca0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Model(                                         ModelSerializer {                                             class: Py(                                                 0x0000556d8d0fc220,                                             ),                                             serializer: Fields(                                                 GeneralFieldsSerializer {                                                     fields: {                                                         "path": SerField {                                                             key_py: Py(                                                                 0x00007f80f1a3b228,                                                             ),                                                             alias: None,                                                             alias_py: None,                                                             serializer: Some(                                                                 Str(                                                                     StrSerializer,                                                                 ),                                                             ),                                                             required: true,                                                         },                                                         "data": SerField {                                                             key_py: Py(                                                                 0x00007f80f1a38240,                                                             ),                                                             alias: None,                                                             alias_py: None,                                                             serializer: Some(                                                                 Bytes(                                                                     BytesSerializer {                                                                         bytes_mode: Utf8,                                                                     },                                                                 ),                                                             ),                                                             required: true,                                                         },                                                     },                                                     computed_fields: Some(                                                         ComputedFields(                                                             [],                                                         ),                                                     ),                                                     mode: SimpleDict,                                                     extra_serializer: None,                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     required_fields: 2,                                                 },                                             ),                                             has_extra: false,                                             root_model: false,                                             name: "ImportFile",                                         },                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[ImportFile]",                                 },                             ),                         ),                         required: true,                     },                     "format": SerField {                         key_py: Py(                             0x00007f80f1a390e8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8cf0d1b0,                                     ),                                     serializer: Union(                                         UnionSerializer {                                             choices: [                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cad60d0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3a20,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "fbx",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['fbx']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 1,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "fbx",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cf17360,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3c00,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "gltf",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['gltf']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 1,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "gltf",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cf18780,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1a3ad28,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "obj",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['obj']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "obj",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cf1daa0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3db0,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "ply",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['ply']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "ply",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cac8e80,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "split_closed_faces": SerField {                                                                         key_py: Py(                                                                             0x00007f80def3fbf0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1947100,                                                                                         ),                                                                                     ),                                                                                     serializer: Nullable(                                                                                         NullableSerializer {                                                                                             serializer: Bool(                                                                                                 BoolSerializer,                                                                                             ),                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3fc0,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "sldprt",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['sldprt']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 2,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "sldprt",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cacb3e0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1a3c468,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "step",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['step']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "split_closed_faces": SerField {                                                                         key_py: Py(                                                                             0x00007f80def3fbf0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80f1947100,                                                                                         ),                                                                                     ),                                                                                     serializer: Nullable(                                                                                         NullableSerializer {                                                                                             serializer: Bool(                                                                                                 BoolSerializer,                                                                                             ),                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 2,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "step",                                                     },                                                 ),                                                 Model(                                                     ModelSerializer {                                                         class: Py(                                                             0x0000556d8cacd9d0,                                                         ),                                                         serializer: Fields(                                                             GeneralFieldsSerializer {                                                                 fields: {                                                                     "coords": SerField {                                                                         key_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: true,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "units": SerField {                                                                         key_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             Recursive(                                                                                 DefinitionRefSerializer {                                                                                     definition: "...",                                                                                     retry_with_lax_check: false,                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                     "type": SerField {                                                                         key_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         alias: None,                                                                         alias_py: None,                                                                         serializer: Some(                                                                             WithDefault(                                                                                 WithDefaultSerializer {                                                                                     default: Default(                                                                                         Py(                                                                                             0x00007f80df1e3f60,                                                                                         ),                                                                                     ),                                                                                     serializer: Literal(                                                                                         LiteralSerializer {                                                                                             expected_int: {},                                                                                             expected_str: {                                                                                                 "stl",                                                                                             },                                                                                             expected_py: None,                                                                                             name: "literal['stl']",                                                                                         },                                                                                     ),                                                                                 },                                                                             ),                                                                         ),                                                                         required: true,                                                                     },                                                                 },                                                                 computed_fields: Some(                                                                     ComputedFields(                                                                         [],                                                                     ),                                                                 ),                                                                 mode: SimpleDict,                                                                 extra_serializer: None,                                                                 filter: SchemaFilter {                                                                     include: None,                                                                     exclude: None,                                                                 },                                                                 required_fields: 3,                                                             },                                                         ),                                                         has_extra: false,                                                         root_model: false,                                                         name: "stl",                                                     },                                                 ),                                             ],                                             name: "Union[fbx, gltf, obj, ply, sldprt, step, stl]",                                         },                                     ),                                     has_extra: false,                                     root_model: true,                                     name: "RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df1994f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "import_files",                                             },                                             expected_py: None,                                             name: "literal['import_files']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "import_files",     }, ), definitions=[Enum(EnumSerializer { class: Py(0x556d8cf2e950), serializer: Some(Str(StrSerializer)) }), Model(ModelSerializer { class: Py(0x556d8cac3080), serializer: Fields(GeneralFieldsSerializer { fields: {"axis": SerField { key_py: Py(0x7f80f00bca80), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: false })), required: true }, "direction": SerField { key_py: Py(0x7f80f06faaf0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: false })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "AxisDirectionPair" }), Enum(EnumSerializer { class: Py(0x556d8cad32d0), serializer: Some(Str(StrSerializer)) }), Model(ModelSerializer { class: Py(0x556d8cac5940), serializer: Fields(GeneralFieldsSerializer { fields: {"up": SerField { key_py: Py(0x7f80f06ab0f0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }, "forward": SerField { key_py: Py(0x7f80e155ae80), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "System" }), Enum(EnumSerializer { class: Py(0x556d8cac6b40), serializer: Some(Str(StrSerializer)) })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="import_files", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "files",                         lookup_key: Simple {                             key: "files",                             py_key: Py(                                 0x00007f80de2907b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "files",                                         Py(                                             0x00007f80de2907e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f19f0ca0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Model(                                         ModelValidator {                                             revalidate: Never,                                             validator: ModelFields(                                                 ModelFieldsValidator {                                                     fields: [                                                         Field {                                                             name: "data",                                                             lookup_key: Simple {                                                                 key: "data",                                                                 py_key: Py(                                                                     0x00007f80de290570,                                                                 ),                                                                 path: LookupPath(                                                                     [                                                                         S(                                                                             "data",                                                                             Py(                                                                                 0x00007f80de2904b0,                                                                             ),                                                                         ),                                                                     ],                                                                 ),                                                             },                                                             name_py: Py(                                                                 0x00007f80f1a38240,                                                             ),                                                             validator: Bytes(                                                                 BytesValidator {                                                                     strict: false,                                                                 },                                                             ),                                                             frozen: false,                                                         },                                                         Field {                                                             name: "path",                                                             lookup_key: Simple {                                                                 key: "path",                                                                 py_key: Py(                                                                     0x00007f80de2904e0,                                                                 ),                                                                 path: LookupPath(                                                                     [                                                                         S(                                                                             "path",                                                                             Py(                                                                                 0x00007f80de290510,                                                                             ),                                                                         ),                                                                     ],                                                                 ),                                                             },                                                             name_py: Py(                                                                 0x00007f80f1a3b228,                                                             ),                                                             validator: Str(                                                                 StrValidator {                                                                     strict: false,                                                                     coerce_numbers_to_str: false,                                                                 },                                                             ),                                                             frozen: false,                                                         },                                                     ],                                                     model_name: "ImportFile",                                                     extra_behavior: Ignore,                                                     extras_validator: None,                                                     strict: false,                                                     from_attributes: false,                                                     loc_by_alias: true,                                                 },                                             ),                                             class: Py(                                                 0x0000556d8d0fc220,                                             ),                                             post_init: None,                                             frozen: false,                                             custom_init: false,                                             root_model: false,                                             undefined: Py(                                                 0x00007f80e0935e70,                                             ),                                             name: "ImportFile",                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "format",                         lookup_key: Simple {                             key: "format",                             py_key: Py(                                 0x00007f80de290ae0,                             ),                             path: LookupPath(                                 [                                     S(                                         "format",                                         Py(                                             0x00007f80de290b10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a390e8,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: TaggedUnion(                                     TaggedUnionValidator {                                         discriminator: LookupKey(                                             Simple {                                                 key: "type",                                                 py_key: Py(                                                     0x00007f80f1a3cbf8,                                                 ),                                                 path: LookupPath(                                                     [                                                         S(                                                             "type",                                                             Py(                                                                 0x00007f80f1a3cbf8,                                                             ),                                                         ),                                                     ],                                                 ),                                             },                                         ),                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "sldprt": 4,                                                     "step": 5,                                                     "obj": 2,                                                     "ply": 3,                                                     "stl": 6,                                                     "fbx": 0,                                                     "gltf": 1,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290720,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de2906f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3a20,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "fbx": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3a20,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'fbx'",                                                                                         name: "literal['fbx']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['fbx']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "fbx",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cad60d0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "fbx",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290600,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290690,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3c00,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "gltf": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3c00,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'gltf'",                                                                                         name: "literal['gltf']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['gltf']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "gltf",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cf17360,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "gltf",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de2905a0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de2905d0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290630,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290780,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1a3ad28,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "obj": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80f1a3ad28,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'obj'",                                                                                         name: "literal['obj']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['obj']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de290750,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de290660,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "obj",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cf18780,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "obj",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de2906c0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de2908a0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290840,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290810,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3db0,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "ply": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3db0,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'ply'",                                                                                         name: "literal['ply']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['ply']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de290870,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de2908d0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "ply",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cf1daa0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "ply",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "split_closed_faces",                                                                         lookup_key: Simple {                                                                             key: "split_closed_faces",                                                                             py_key: Py(                                                                                 0x00007f80de287a30,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "split_closed_faces",                                                                                         Py(                                                                                             0x00007f80de29d370,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80def3fbf0,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Nullable(                                                                                     NullableValidator {                                                                                         validator: Bool(                                                                                             BoolValidator {                                                                                                 strict: false,                                                                                             },                                                                                         ),                                                                                         name: "nullable[bool]",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[nullable[bool]]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290900,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290930,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3fc0,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "sldprt": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3fc0,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'sldprt'",                                                                                         name: "literal['sldprt']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['sldprt']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "sldprt",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cac8e80,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "sldprt",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "split_closed_faces",                                                                         lookup_key: Simple {                                                                             key: "split_closed_faces",                                                                             py_key: Py(                                                                                 0x00007f80de29c170,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "split_closed_faces",                                                                                         Py(                                                                                             0x00007f80de29cb30,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80def3fbf0,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1947100,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Nullable(                                                                                     NullableValidator {                                                                                         validator: Bool(                                                                                             BoolValidator {                                                                                                 strict: false,                                                                                             },                                                                                         ),                                                                                         name: "nullable[bool]",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[nullable[bool]]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290960,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290990,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80f1a3c468,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "step": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80f1a3c468,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'step'",                                                                                         name: "literal['step']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['step']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "step",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cacb3e0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "step",                                                     },                                                 ),                                                 Model(                                                     ModelValidator {                                                         revalidate: Never,                                                         validator: ModelFields(                                                             ModelFieldsValidator {                                                                 fields: [                                                                     Field {                                                                         name: "coords",                                                                         lookup_key: Simple {                                                                             key: "coords",                                                                             py_key: Py(                                                                                 0x00007f80de2909c0,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "coords",                                                                                         Py(                                                                                             0x00007f80de2909f0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f00b9380,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "type",                                                                         lookup_key: Simple {                                                                             key: "type",                                                                             py_key: Py(                                                                                 0x00007f80de290a20,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "type",                                                                                         Py(                                                                                             0x00007f80de290a50,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f1a3cbf8,                                                                         ),                                                                         validator: WithDefault(                                                                             WithDefaultValidator {                                                                                 default: Default(                                                                                     Py(                                                                                         0x00007f80df1e3f60,                                                                                     ),                                                                                 ),                                                                                 on_error: Raise,                                                                                 validator: Literal(                                                                                     LiteralValidator {                                                                                         lookup: LiteralLookup {                                                                                             expected_bool: None,                                                                                             expected_int: None,                                                                                             expected_str: Some(                                                                                                 {                                                                                                     "stl": 0,                                                                                                 },                                                                                             ),                                                                                             expected_py_dict: None,                                                                                             expected_py_values: None,                                                                                             values: [                                                                                                 Py(                                                                                                     0x00007f80df1e3f60,                                                                                                 ),                                                                                             ],                                                                                         },                                                                                         expected_repr: "'stl'",                                                                                         name: "literal['stl']",                                                                                     },                                                                                 ),                                                                                 validate_default: false,                                                                                 copy_default: false,                                                                                 name: "default[literal['stl']]",                                                                                 undefined: Py(                                                                                     0x00007f80e0935e70,                                                                                 ),                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                     Field {                                                                         name: "units",                                                                         lookup_key: Simple {                                                                             key: "units",                                                                             py_key: Py(                                                                                 0x00007f80de290a80,                                                                             ),                                                                             path: LookupPath(                                                                                 [                                                                                     S(                                                                                         "units",                                                                                         Py(                                                                                             0x00007f80de290ab0,                                                                                         ),                                                                                     ),                                                                                 ],                                                                             ),                                                                         },                                                                         name_py: Py(                                                                             0x00007f80f08618f0,                                                                         ),                                                                         validator: DefinitionRef(                                                                             DefinitionRefValidator {                                                                                 definition: "...",                                                                             },                                                                         ),                                                                         frozen: false,                                                                     },                                                                 ],                                                                 model_name: "stl",                                                                 extra_behavior: Ignore,                                                                 extras_validator: None,                                                                 strict: false,                                                                 from_attributes: false,                                                                 loc_by_alias: true,                                                             },                                                         ),                                                         class: Py(                                                             0x0000556d8cacd9d0,                                                         ),                                                         post_init: None,                                                         frozen: false,                                                         custom_init: false,                                                         root_model: false,                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                         name: "stl",                                                     },                                                 ),                                             ],                                         },                                         from_attributes: true,                                         strict: false,                                         custom_error: None,                                         tags_repr: "'fbx', 'gltf', 'obj', 'ply', 'sldprt', 'step', 'stl'",                                         discriminator_repr: "'type'",                                         name: "tagged-union[fbx,gltf,obj,ply,sldprt,step,stl]",                                     },                                 ),                                 class: Py(                                     0x0000556d8cf0d1b0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: true,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de290b40,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de290b70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df1994f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "import_files": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df1994f0,                                                 ),                                             ],                                         },                                         expected_repr: "'import_files'",                                         name: "literal['import_files']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['import_files']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "import_files",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8c87ee40,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "import_files",     }, ), definitions=[StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cad32d0), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"negative": 1, "positive": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79eb0), Py(0x7f80dee79f10)] }, missing: None, expected_repr: "'positive' or 'negative'", strict: false, class_repr: "Direction", name: "str-enum[Direction]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "forward", lookup_key: Simple { key: "forward", py_key: Py(0x7f80de2903c0), path: LookupPath([S("forward", Py(0x7f80de290210))]) }, name_py: Py(0x7f80e155ae80), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "up", lookup_key: Simple { key: "up", py_key: Py(0x7f80de290450), path: LookupPath([S("up", Py(0x7f80de290420))]) }, name_py: Py(0x7f80f06ab0f0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }], model_name: "System", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cac5940), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "System" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cac6b40), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"y": 0, "z": 1}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79d30), Py(0x7f80dee79d90)] }, missing: None, expected_repr: "'y' or 'z'", strict: false, class_repr: "Axis", name: "str-enum[Axis]" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "axis", lookup_key: Simple { key: "axis", py_key: Py(0x7f80de290240), path: LookupPath([S("axis", Py(0x7f80de2902d0))]) }, name_py: Py(0x7f80f00bca80), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "direction", lookup_key: Simple { key: "direction", py_key: Py(0x7f80de3de6f0), path: LookupPath([S("direction", Py(0x7f80de287db0))]) }, name_py: Py(0x7f80f06faaf0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }], model_name: "AxisDirectionPair", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8cac3080), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "AxisDirectionPair" }), StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8cf2e950), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"cm": 0, "m": 3, "mm": 4, "yd": 5, "in": 2, "ft": 1}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dee79af0), Py(0x7f80dee7a030), Py(0x7f80dee7a090), Py(0x7f80dee79fd0), Py(0x7f80dee7a1b0), Py(0x7f80dee7a270)] }, missing: None, expected_repr: "'cm', 'ft', 'in', 'm', 'mm' or 'yd'", strict: false, class_repr: "UnitLength", name: "str-enum[UnitLength]" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, files: List[kittycad.models.import_file.ImportFile], format: pydantic.root_model.RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], type: Literal['import_files'] = 'import_files') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

files: List[ImportFile][source]
format: RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'files': FieldInfo(annotation=List[ImportFile], required=True), 'format': FieldInfo(annotation=RootModel[Annotated[Union[fbx, gltf, obj, ply, sldprt, step, stl], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], required=True), 'type': FieldInfo(annotation=Literal['import_files'], required=False, default='import_files')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['import_files'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.make_axes_gizmo(**data)[source][source]

Add a gizmo showing the axes.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'clobber': <class 'bool'>, 'gizmo_mode': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['make_axes_gizmo']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.make_axes_gizmo'>, 'config': {'title': 'make_axes_gizmo'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.make_axes_gizmo'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.make_axes_gizmo'>>]}, 'ref': 'kittycad.models.modeling_cmd.make_axes_gizmo:93929008670448', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'clobber': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'gizmo_mode': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'make_axes_gizmo', 'schema': {'expected': ['make_axes_gizmo'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'make_axes_gizmo', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3226f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4ba8b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "make_axes_gizmo",                                             },                                             expected_py: None,                                             name: "literal['make_axes_gizmo']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "gizmo_mode": SerField {                         key_py: Py(                             0x00007f80de4ba8f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "clobber": SerField {                         key_py: Py(                             0x00007f80de4952c0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "make_axes_gizmo",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="make_axes_gizmo", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "clobber",                         lookup_key: Simple {                             key: "clobber",                             py_key: Py(                                 0x00007f80de243060,                             ),                             path: LookupPath(                                 [                                     S(                                         "clobber",                                         Py(                                             0x00007f80de243090,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4952c0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "gizmo_mode",                         lookup_key: Simple {                             key: "gizmo_mode",                             py_key: Py(                                 0x00007f80de2477f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "gizmo_mode",                                         Py(                                             0x00007f80de247770,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4ba8f0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2430c0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2430f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4ba8b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "make_axes_gizmo": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4ba8b0,                                                 ),                                             ],                                         },                                         expected_repr: "'make_axes_gizmo'",                                         name: "literal['make_axes_gizmo']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['make_axes_gizmo']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "make_axes_gizmo",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3226f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "make_axes_gizmo",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, clobber: bool, gizmo_mode: bool, type: Literal['make_axes_gizmo'] = 'make_axes_gizmo') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

clobber: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

gizmo_mode: bool[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'clobber': FieldInfo(annotation=bool, required=True), 'gizmo_mode': FieldInfo(annotation=bool, required=True), 'type': FieldInfo(annotation=Literal['make_axes_gizmo'], required=False, default='make_axes_gizmo')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['make_axes_gizmo'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.make_plane(**data)[source][source]

Make a new plane

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'clobber': <class 'bool'>, 'hide': typing.Optional[bool], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'origin': <class 'kittycad.models.point3d.Point3d'>, 'size': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['make_plane'], 'x_axis': <class 'kittycad.models.point3d.Point3d'>, 'y_axis': <class 'kittycad.models.point3d.Point3d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.make_plane'>, 'config': {'title': 'make_plane'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.make_plane'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.make_plane'>>]}, 'ref': 'kittycad.models.modeling_cmd.make_plane:93929008330880', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'clobber': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'hide': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'origin': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'size': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'make_plane', 'schema': {'expected': ['make_plane'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'x_axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'y_axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'make_plane', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2cf880,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "hide": SerField {                         key_py: Py(                             0x00007f80f0247d80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Bool(                                                 BoolSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b9230,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "make_plane",                                             },                                             expected_py: None,                                             name: "literal['make_plane']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "clobber": SerField {                         key_py: Py(                             0x00007f80de4952c0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "origin": SerField {                         key_py: Py(                             0x00007f80f1a3b060,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "x_axis": SerField {                         key_py: Py(                             0x00007f80de5709f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "y_axis": SerField {                         key_py: Py(                             0x00007f80de570ae0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "size": SerField {                         key_py: Py(                             0x00007f80f1a3c098,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 7,             },         ),         has_extra: false,         root_model: false,         name: "make_plane",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="make_plane", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "clobber",                         lookup_key: Simple {                             key: "clobber",                             py_key: Py(                                 0x00007f80de3d99e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "clobber",                                         Py(                                             0x00007f80de3d9a10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4952c0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "hide",                         lookup_key: Simple {                             key: "hide",                             py_key: Py(                                 0x00007f80de3d9a40,                             ),                             path: LookupPath(                                 [                                     S(                                         "hide",                                         Py(                                             0x00007f80de3d9a70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0247d80,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Bool(                                             BoolValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[bool]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[bool]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "origin",                         lookup_key: Simple {                             key: "origin",                             py_key: Py(                                 0x00007f80de3d9aa0,                             ),                             path: LookupPath(                                 [                                     S(                                         "origin",                                         Py(                                             0x00007f80de3d9ad0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b060,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "size",                         lookup_key: Simple {                             key: "size",                             py_key: Py(                                 0x00007f80de3d9b00,                             ),                             path: LookupPath(                                 [                                     S(                                         "size",                                         Py(                                             0x00007f80de3d9b30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3c098,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de3d3d00,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3d9b60,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3d9b90,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b9230,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "make_plane": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b9230,                                                 ),                                             ],                                         },                                         expected_repr: "'make_plane'",                                         name: "literal['make_plane']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['make_plane']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "x_axis",                         lookup_key: Simple {                             key: "x_axis",                             py_key: Py(                                 0x00007f80de3d9bc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "x_axis",                                         Py(                                             0x00007f80de3d9bf0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de5709f0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "y_axis",                         lookup_key: Simple {                             key: "y_axis",                             py_key: Py(                                 0x00007f80de3d9c20,                             ),                             path: LookupPath(                                 [                                     S(                                         "y_axis",                                         Py(                                             0x00007f80de3d9c50,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de570ae0,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "make_plane",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2cf880,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "make_plane",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, clobber: bool, hide: Optional[bool] = None, origin: kittycad.models.point3d.Point3d, size: kittycad.models.length_unit.LengthUnit, type: Literal['make_plane'] = 'make_plane', x_axis: kittycad.models.point3d.Point3d, y_axis: kittycad.models.point3d.Point3d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

clobber: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

hide: Optional[bool][source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'clobber': FieldInfo(annotation=bool, required=True), 'hide': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'origin': FieldInfo(annotation=Point3d, required=True), 'size': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['make_plane'], required=False, default='make_plane'), 'x_axis': FieldInfo(annotation=Point3d, required=True), 'y_axis': FieldInfo(annotation=Point3d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

origin: Point3d[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

size: LengthUnit[source]
type: Literal['make_plane'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

x_axis: Point3d[source]
y_axis: Point3d[source]
class kittycad.models.modeling_cmd.mass(**data)[source][source]

Get the mass of entities in the scene or the default scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'material_density': <class 'float'>, 'material_density_unit': <enum 'UnitDensity'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'output_unit': <enum 'UnitMass'>, 'type': typing.Literal['mass']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.mass'>, 'config': {'title': 'mass'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.mass'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.mass'>>]}, 'ref': 'kittycad.models.modeling_cmd.mass:93929008876672', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'material_density': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'material_density_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitDensity'>, 'members': [UnitDensity.LB_FT3, UnitDensity.KG_M3], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_density.UnitDensity:93929000508624', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'output_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitMass'>, 'members': [UnitMass.G, UnitMass.KG, UnitMass.LB], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_mass.UnitMass:93929000510400', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'mass', 'schema': {'expected': ['mass'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'mass', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d354c80,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "material_density": SerField {                         key_py: Py(                             0x00007f80dedc58f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "output_unit": SerField {                         key_py: Py(                             0x00007f80dedc5eb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb5a3c0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df6e30f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "mass",                                             },                                             expected_py: None,                                             name: "literal['mass']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "material_density_unit": SerField {                         key_py: Py(                             0x00007f80dedc5870,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb59cd0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 5,             },         ),         has_extra: false,         root_model: false,         name: "mass",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="mass", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de2869b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de2874b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "material_density",                         lookup_key: Simple {                             key: "material_density",                             py_key: Py(                                 0x00007f80de287ef0,                             ),                             path: LookupPath(                                 [                                     S(                                         "material_density",                                         Py(                                             0x00007f80de2877b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc58f0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "material_density_unit",                         lookup_key: Simple {                             key: "material_density_unit",                             py_key: Py(                                 0x00007f80de4446b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "material_density_unit",                                         Py(                                             0x00007f80de287f30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5870,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb59cd0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "kg:m3": 1,                                             "lb:ft3": 0,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79c7d0,                                         ),                                         Py(                                             0x00007f80de79c830,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'lb:ft3' or 'kg:m3'",                                 strict: false,                                 class_repr: "UnitDensity",                                 name: "str-enum[UnitDensity]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "output_unit",                         lookup_key: Simple {                             key: "output_unit",                             py_key: Py(                                 0x00007f80de287670,                             ),                             path: LookupPath(                                 [                                     S(                                         "output_unit",                                         Py(                                             0x00007f80de2876b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5eb0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb5a3c0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "kg": 1,                                             "lb": 2,                                             "g": 0,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79c8f0,                                         ),                                         Py(                                             0x00007f80de79c950,                                         ),                                         Py(                                             0x00007f80de79c9b0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'g', 'kg' or 'lb'",                                 strict: false,                                 class_repr: "UnitMass",                                 name: "str-enum[UnitMass]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2a02a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2a0300,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df6e30f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "mass": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df6e30f0,                                                 ),                                             ],                                         },                                         expected_repr: "'mass'",                                         name: "literal['mass']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['mass']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "mass",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d354c80,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "mass",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], material_density: float, material_density_unit: kittycad.models.unit_density.UnitDensity, output_unit: kittycad.models.unit_mass.UnitMass, type: Literal['mass'] = 'mass') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

material_density: float[source]
material_density_unit: UnitDensity[source]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'material_density': FieldInfo(annotation=float, required=True), 'material_density_unit': FieldInfo(annotation=UnitDensity, required=True), 'output_unit': FieldInfo(annotation=UnitMass, required=True), 'type': FieldInfo(annotation=Literal['mass'], required=False, default='mass')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

output_unit: UnitMass[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['mass'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.mouse_click(**data)[source][source]

Send a mouse click event Updates modified/selected entities.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['mouse_click'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.mouse_click'>, 'config': {'title': 'mouse_click'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.mouse_click'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.mouse_click'>>]}, 'ref': 'kittycad.models.modeling_cmd.mouse_click:93929008404288', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'mouse_click', 'schema': {'expected': ['mouse_click'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'mouse_click', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2e1740,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19abb0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "mouse_click",                                             },                                             expected_py: None,                                             name: "literal['mouse_click']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "mouse_click",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="mouse_click", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3eb2d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3eb330,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19abb0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "mouse_click": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19abb0,                                                 ),                                             ],                                         },                                         expected_repr: "'mouse_click'",                                         name: "literal['mouse_click']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['mouse_click']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de3eb390,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de3eb3c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3fcec0,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3fcec0,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "mouse_click",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2e1740,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "mouse_click",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['mouse_click'] = 'mouse_click', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['mouse_click'], required=False, default='mouse_click'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['mouse_click'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.mouse_move(**data)[source][source]

Send a mouse move event

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'sequence': typing.Optional[int], 'type': typing.Literal['mouse_move'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.mouse_move'>, 'config': {'title': 'mouse_move'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.mouse_move'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.mouse_move'>>]}, 'ref': 'kittycad.models.modeling_cmd.mouse_move:93929008385184', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'sequence': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'mouse_move', 'schema': {'expected': ['mouse_move'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'mouse_move', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2dcca0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80e08ce930,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "mouse_move",                                             },                                             expected_py: None,                                             name: "literal['mouse_move']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "sequence": SerField {                         key_py: Py(                             0x00007f80f1a3bde8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Int(                                                 IntSerializer,                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "mouse_move",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="mouse_move", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "sequence",                         lookup_key: Simple {                             key: "sequence",                             py_key: Py(                                 0x00007f80de3dfd30,                             ),                             path: LookupPath(                                 [                                     S(                                         "sequence",                                         Py(                                             0x00007f80de3dfcf0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3bde8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3e9a40,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3e9aa0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80e08ce930,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "mouse_move": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80e08ce930,                                                 ),                                             ],                                         },                                         expected_repr: "'mouse_move'",                                         name: "literal['mouse_move']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['mouse_move']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de3e9b00,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de3e9b30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3dfc80,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de3dfc80,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "mouse_move",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2dcca0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "mouse_move",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, sequence: Optional[int] = None, type: Literal['mouse_move'] = 'mouse_move', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'sequence': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['mouse_move'], required=False, default='mouse_move'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

sequence: Optional[int][source]
type: Literal['mouse_move'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.move_path_pen(**data)[source][source]

Move the path’s “pen”.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'to': <class 'kittycad.models.point3d.Point3d'>, 'type': typing.Literal['move_path_pen']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.move_path_pen'>, 'config': {'title': 'move_path_pen'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.move_path_pen'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.move_path_pen'>>]}, 'ref': 'kittycad.models.modeling_cmd.move_path_pen:93929007198352', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'to': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'move_path_pen', 'schema': {'expected': ['move_path_pen'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'move_path_pen', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1bb090,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "path": SerField {                         key_py: Py(                             0x00007f80f1a3b228,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "to": SerField {                         key_py: Py(                             0x00007f80f0bba730,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c616f80,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "z": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e828,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 3,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point3d",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de473d30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "move_path_pen",                                             },                                             expected_py: None,                                             name: "literal['move_path_pen']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "move_path_pen",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="move_path_pen", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path",                         lookup_key: Simple {                             key: "path",                             py_key: Py(                                 0x00007f80de477ae0,                             ),                             path: LookupPath(                                 [                                     S(                                         "path",                                         Py(                                             0x00007f80de477b10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b228,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x0000556d8d039790,                                 ),                                 config: Py(                                     0x00007f80de47a800,                                 ),                                 name: "function-after[ModelingCmdId(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "to",                         lookup_key: Simple {                             key: "to",                             py_key: Py(                                 0x00007f80de477b40,                             ),                             path: LookupPath(                                 [                                     S(                                         "to",                                         Py(                                             0x00007f80de477b70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0bba730,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "z",                                                 lookup_key: Simple {                                                     key: "z",                                                     py_key: Py(                                                         0x00007f80f1a3e828,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "z",                                                                 Py(                                                                     0x00007f80f1a3e828,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e828,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point3d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c616f80,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point3d",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de477ba0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de477bd0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de473d30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "move_path_pen": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de473d30,                                                 ),                                             ],                                         },                                         expected_repr: "'move_path_pen'",                                         name: "literal['move_path_pen']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['move_path_pen']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "move_path_pen",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1bb090,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "move_path_pen",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path: kittycad.models.modeling_cmd_id.ModelingCmdId, to: kittycad.models.point3d.Point3d, type: Literal['move_path_pen'] = 'move_path_pen') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path': FieldInfo(annotation=ModelingCmdId, required=True), 'to': FieldInfo(annotation=Point3d, required=True), 'type': FieldInfo(annotation=Literal['move_path_pen'], required=False, default='move_path_pen')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path: ModelingCmdId[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

to: Point3d[source]
type: Literal['move_path_pen'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.new_annotation(**data)[source][source]

Create a new annotation

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'annotation_type': <enum 'AnnotationType'>, 'clobber': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'options': <class 'kittycad.models.annotation_options.AnnotationOptions'>, 'type': typing.Literal['new_annotation']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <enum 'AnnotationLineEnd'>, 'members': [AnnotationLineEnd.NONE, AnnotationLineEnd.ARROW], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'sub_type': 'str', 'type': 'enum'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.new_annotation'>, 'config': {'title': 'new_annotation'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.new_annotation'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.new_annotation'>>]}, 'ref': 'kittycad.models.modeling_cmd.new_annotation:93929007951216', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'annotation_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'AnnotationType'>, 'members': [AnnotationType.T2D, AnnotationType.T3D], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_type.AnnotationType:93928995025376', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'clobber': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.annotation_options.AnnotationOptions'>, 'config': {'title': 'AnnotationOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_options.AnnotationOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_options.AnnotationOptions'>>]}, 'ref': 'kittycad.models.annotation_options.AnnotationOptions:93928994997008', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'line_ends': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>, 'config': {'title': 'AnnotationLineEndOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>>]}, 'ref': 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions:93928997090928', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'end': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'type': 'definition-ref'}, 'type': 'model-field'}, 'start': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'AnnotationLineEndOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'line_width': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'position': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'text': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>, 'config': {'title': 'AnnotationTextOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>>]}, 'ref': 'kittycad.models.annotation_text_options.AnnotationTextOptions:93928997074832', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'point_size': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'text': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'AnnotationTextAlignmentX'>, 'members': [AnnotationTextAlignmentX.LEFT, AnnotationTextAlignmentX.CENTER, AnnotationTextAlignmentX.RIGHT], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_text_alignment_x.AnnotationTextAlignmentX:93928997071280', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'AnnotationTextAlignmentY'>, 'members': [AnnotationTextAlignmentY.BOTTOM, AnnotationTextAlignmentY.CENTER, AnnotationTextAlignmentY.TOP], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_text_alignment_y.AnnotationTextAlignmentY:93928997073056', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}}, 'model_name': 'AnnotationTextOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'AnnotationOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'new_annotation', 'schema': {'expected': ['new_annotation'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'new_annotation', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d272d70,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de493170,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "new_annotation",                                             },                                             expected_py: None,                                             name: "literal['new_annotation']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "clobber": SerField {                         key_py: Py(                             0x00007f80de4952c0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "annotation_type": SerField {                         key_py: Py(                             0x00007f80f084a4b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8c61f1e0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "options": SerField {                         key_py: Py(                             0x00007f80f1a3b000,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c618310,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "line_ends": SerField {                                                     key_py: Py(                                                         0x00007f80df202d70,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c817670,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "end": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a38900,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Recursive(                                                                                                         DefinitionRefSerializer {                                                                                                             definition: "...",                                                                                                             retry_with_lax_check: false,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "start": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3c340,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Recursive(                                                                                                         DefinitionRefSerializer {                                                                                                             definition: "...",                                                                                                             retry_with_lax_check: false,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 2,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "AnnotationLineEndOptions",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "line_width": SerField {                                                     key_py: Py(                                                         0x00007f80ef971cb0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "position": SerField {                                                     key_py: Py(                                                         0x00007f80f025cbf0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c616f80,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "x": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3d0b8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "y": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e7f8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "z": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e828,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 3,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "Point3d",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "text": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3c8f0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c813790,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "text": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3c8f0,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Str(                                                                                                         StrSerializer,                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "y": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e7f8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Enum(                                                                                                         EnumSerializer {                                                                                                             class: Py(                                                                                                                 0x0000556d8c8130a0,                                                                                                             ),                                                                                                             serializer: Some(                                                                                                                 Str(                                                                                                                     StrSerializer,                                                                                                                 ),                                                                                                             ),                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "point_size": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80de6b9630,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Int(                                                                                                         IntSerializer,                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "x": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3d0b8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Enum(                                                                                                         EnumSerializer {                                                                                                             class: Py(                                                                                                                 0x0000556d8c8129b0,                                                                                                             ),                                                                                                             serializer: Some(                                                                                                                 Str(                                                                                                                     StrSerializer,                                                                                                                 ),                                                                                                             ),                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 4,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "AnnotationTextOptions",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "color": SerField {                                                     key_py: Py(                                                         0x00007f80f0a3da40,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c6208d0,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "g": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e498,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "r": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3b710,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "b": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a37370,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "a": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a36f50,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 4,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "Color",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 5,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "AnnotationOptions",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "new_annotation",     }, ), definitions=[Enum(EnumSerializer { class: Py(0x556d8c816f80), serializer: Some(Str(StrSerializer)) })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="new_annotation", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "annotation_type",                         lookup_key: Simple {                             key: "annotation_type",                             py_key: Py(                                 0x00007f80de33c0f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "annotation_type",                                         Py(                                             0x00007f80de3577b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f084a4b0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8c61f1e0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "t3d": 1,                                             "t2d": 0,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80dede7770,                                         ),                                         Py(                                             0x00007f80dede7830,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'t2d' or 't3d'",                                 strict: false,                                 class_repr: "AnnotationType",                                 name: "str-enum[AnnotationType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "clobber",                         lookup_key: Simple {                             key: "clobber",                             py_key: Py(                                 0x00007f80de349bc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "clobber",                                         Py(                                             0x00007f80de349b60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4952c0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "options",                         lookup_key: Simple {                             key: "options",                             py_key: Py(                                 0x00007f80de34b270,                             ),                             path: LookupPath(                                 [                                     S(                                         "options",                                         Py(                                             0x00007f80de34b2a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b000,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "color",                                                 lookup_key: Simple {                                                     key: "color",                                                     py_key: Py(                                                         0x00007f80de349b30,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "color",                                                                 Py(                                                                     0x00007f80de349b90,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f0a3da40,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "a",                                                                                         lookup_key: Simple {                                                                                             key: "a",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e378,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "a",                                                                                                         Py(                                                                                                             0x00007f80f1a3e378,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a36f50,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "b",                                                                                         lookup_key: Simple {                                                                                             key: "b",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e3a8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "b",                                                                                                         Py(                                                                                                             0x00007f80f1a3e3a8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a37370,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "g",                                                                                         lookup_key: Simple {                                                                                             key: "g",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e498,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "g",                                                                                                         Py(                                                                                                             0x00007f80f1a3e498,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e498,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "r",                                                                                         lookup_key: Simple {                                                                                             key: "r",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e6a8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "r",                                                                                                         Py(                                                                                                             0x00007f80f1a3e6a8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3b710,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "Color",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c6208d0,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "Color",                                                                     },                                                                 ),                                                                 name: "nullable[Color]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[Color]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "line_ends",                                                 lookup_key: Simple {                                                     key: "line_ends",                                                     py_key: Py(                                                         0x00007f80de357770,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "line_ends",                                                                 Py(                                                                     0x00007f80de357830,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80df202d70,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "end",                                                                                         lookup_key: Simple {                                                                                             key: "end",                                                                                             py_key: Py(                                                                                                 0x00007f80de34b0f0,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "end",                                                                                                         Py(                                                                                                             0x00007f80de34b120,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a38900,                                                                                         ),                                                                                         validator: DefinitionRef(                                                                                             DefinitionRefValidator {                                                                                                 definition: "...",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "start",                                                                                         lookup_key: Simple {                                                                                             key: "start",                                                                                             py_key: Py(                                                                                                 0x00007f80de34b150,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "start",                                                                                                         Py(                                                                                                             0x00007f80de34b180,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3c340,                                                                                         ),                                                                                         validator: DefinitionRef(                                                                                             DefinitionRefValidator {                                                                                                 definition: "...",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "AnnotationLineEndOptions",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c817670,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "AnnotationLineEndOptions",                                                                     },                                                                 ),                                                                 name: "nullable[AnnotationLineEndOptions]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[AnnotationLineEndOptions]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "line_width",                                                 lookup_key: Simple {                                                     key: "line_width",                                                     py_key: Py(                                                         0x00007f80de3577f0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "line_width",                                                                 Py(                                                                     0x00007f80de357870,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80ef971cb0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 name: "nullable[float]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[float]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "position",                                                 lookup_key: Simple {                                                     key: "position",                                                     py_key: Py(                                                         0x00007f80de3578b0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "position",                                                                 Py(                                                                     0x00007f80de3578f0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f025cbf0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "x",                                                                                         lookup_key: Simple {                                                                                             key: "x",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7c8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "x",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7c8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3d0b8,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "y",                                                                                         lookup_key: Simple {                                                                                             key: "y",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7f8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "y",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7f8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e7f8,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "z",                                                                                         lookup_key: Simple {                                                                                             key: "z",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e828,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "z",                                                                                                         Py(                                                                                                             0x00007f80f1a3e828,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e828,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "Point3d",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c616f80,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "Point3d",                                                                     },                                                                 ),                                                                 name: "nullable[Point3d]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[Point3d]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "text",                                                 lookup_key: Simple {                                                     key: "text",                                                     py_key: Py(                                                         0x00007f80de34b210,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "text",                                                                 Py(                                                                     0x00007f80de34b240,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3c8f0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "point_size",                                                                                         lookup_key: Simple {                                                                                             key: "point_size",                                                                                             py_key: Py(                                                                                                 0x00007f80de357930,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "point_size",                                                                                                         Py(                                                                                                             0x00007f80de357970,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80de6b9630,                                                                                         ),                                                                                         validator: Int(                                                                                             IntValidator {                                                                                                 strict: false,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "text",                                                                                         lookup_key: Simple {                                                                                             key: "text",                                                                                             py_key: Py(                                                                                                 0x00007f80de34b1b0,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "text",                                                                                                         Py(                                                                                                             0x00007f80de34b1e0,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3c8f0,                                                                                         ),                                                                                         validator: Str(                                                                                             StrValidator {                                                                                                 strict: false,                                                                                                 coerce_numbers_to_str: false,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "x",                                                                                         lookup_key: Simple {                                                                                             key: "x",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7c8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "x",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7c8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3d0b8,                                                                                         ),                                                                                         validator: StrEnum(                                                                                             EnumValidator {                                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                                 class: Py(                                                                                                     0x0000556d8c8129b0,                                                                                                 ),                                                                                                 lookup: LiteralLookup {                                                                                                     expected_bool: None,                                                                                                     expected_int: None,                                                                                                     expected_str: Some(                                                                                                         {                                                                                                             "center": 1,                                                                                                             "left": 0,                                                                                                             "right": 2,                                                                                                         },                                                                                                     ),                                                                                                     expected_py_dict: None,                                                                                                     expected_py_values: None,                                                                                                     values: [                                                                                                         Py(                                                                                                             0x00007f80dede7170,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede71d0,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede7230,                                                                                                         ),                                                                                                     ],                                                                                                 },                                                                                                 missing: None,                                                                                                 expected_repr: "'left', 'center' or 'right'",                                                                                                 strict: false,                                                                                                 class_repr: "AnnotationTextAlignmentX",                                                                                                 name: "str-enum[AnnotationTextAlignmentX]",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "y",                                                                                         lookup_key: Simple {                                                                                             key: "y",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7f8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "y",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7f8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e7f8,                                                                                         ),                                                                                         validator: StrEnum(                                                                                             EnumValidator {                                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                                 class: Py(                                                                                                     0x0000556d8c8130a0,                                                                                                 ),                                                                                                 lookup: LiteralLookup {                                                                                                     expected_bool: None,                                                                                                     expected_int: None,                                                                                                     expected_str: Some(                                                                                                         {                                                                                                             "bottom": 0,                                                                                                             "top": 2,                                                                                                             "center": 1,                                                                                                         },                                                                                                     ),                                                                                                     expected_py_dict: None,                                                                                                     expected_py_values: None,                                                                                                     values: [                                                                                                         Py(                                                                                                             0x00007f80dede7350,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede73b0,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede7410,                                                                                                         ),                                                                                                     ],                                                                                                 },                                                                                                 missing: None,                                                                                                 expected_repr: "'bottom', 'center' or 'top'",                                                                                                 strict: false,                                                                                                 class_repr: "AnnotationTextAlignmentY",                                                                                                 name: "str-enum[AnnotationTextAlignmentY]",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "AnnotationTextOptions",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c813790,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "AnnotationTextOptions",                                                                     },                                                                 ),                                                                 name: "nullable[AnnotationTextOptions]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[AnnotationTextOptions]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "AnnotationOptions",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c618310,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "AnnotationOptions",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de34b2d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de34b300,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de493170,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "new_annotation": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de493170,                                                 ),                                             ],                                         },                                         expected_repr: "'new_annotation'",                                         name: "literal['new_annotation']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['new_annotation']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "new_annotation",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d272d70,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "new_annotation",     }, ), definitions=[StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8c816f80), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"arrow": 1, "none": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dede6b10), Py(0x7f80dede6e70)] }, missing: None, expected_repr: "'none' or 'arrow'", strict: false, class_repr: "AnnotationLineEnd", name: "str-enum[AnnotationLineEnd]" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, annotation_type: kittycad.models.annotation_type.AnnotationType, clobber: bool, options: kittycad.models.annotation_options.AnnotationOptions, type: Literal['new_annotation'] = 'new_annotation') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

annotation_type: AnnotationType[source]
clobber: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'annotation_type': FieldInfo(annotation=AnnotationType, required=True), 'clobber': FieldInfo(annotation=bool, required=True), 'options': FieldInfo(annotation=AnnotationOptions, required=True), 'type': FieldInfo(annotation=Literal['new_annotation'], required=False, default='new_annotation')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

options: AnnotationOptions[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['new_annotation'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.object_bring_to_front(**data)[source][source]

Bring an object to the front of the scene

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['object_bring_to_front']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.object_bring_to_front'>, 'config': {'title': 'object_bring_to_front'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.object_bring_to_front'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.object_bring_to_front'>>]}, 'ref': 'kittycad.models.modeling_cmd.object_bring_to_front:93929008083856', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'object_bring_to_front', 'schema': {'expected': ['object_bring_to_front'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'object_bring_to_front', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d293390,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de493a70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "object_bring_to_front",                                             },                                             expected_py: None,                                             name: "literal['object_bring_to_front']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "object_bring_to_front",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="object_bring_to_front", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de36f570,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de36f370,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37c1e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37c210,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de493a70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "object_bring_to_front": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de493a70,                                                 ),                                             ],                                         },                                         expected_repr: "'object_bring_to_front'",                                         name: "literal['object_bring_to_front']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['object_bring_to_front']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "object_bring_to_front",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d293390,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "object_bring_to_front",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_id: str, type: Literal['object_bring_to_front'] = 'object_bring_to_front') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['object_bring_to_front'], required=False, default='object_bring_to_front')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['object_bring_to_front'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.object_set_material_params_pbr(**data)[source][source]

Set the material properties of an object

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'ambient_occlusion': <class 'float'>, 'color': <class 'kittycad.models.color.Color'>, 'metalness': <class 'float'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'roughness': <class 'float'>, 'type': typing.Literal['object_set_material_params_pbr']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.object_set_material_params_pbr'>, 'config': {'title': 'object_set_material_params_pbr'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.object_set_material_params_pbr'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.object_set_material_params_pbr'>>]}, 'ref': 'kittycad.models.modeling_cmd.object_set_material_params_pbr:93929007194288', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'ambient_occlusion': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'metalness': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'roughness': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'object_set_material_params_pbr', 'schema': {'expected': ['object_set_material_params_pbr'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'object_set_material_params_pbr', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1ba0b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de441660,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "object_set_material_params_pbr",                                             },                                             expected_py: None,                                             name: "literal['object_set_material_params_pbr']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "metalness": SerField {                         key_py: Py(                             0x00007f80de493cb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "roughness": SerField {                         key_py: Py(                             0x00007f80de493d30,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "ambient_occlusion": SerField {                         key_py: Py(                             0x00007f80de493c70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "color": SerField {                         key_py: Py(                             0x00007f80f0a3da40,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c6208d0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "b": SerField {                                                     key_py: Py(                                                         0x00007f80f1a37370,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "r": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3b710,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "g": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "a": SerField {                                                     key_py: Py(                                                         0x00007f80f1a36f50,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 4,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Color",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 6,             },         ),         has_extra: false,         root_model: false,         name: "object_set_material_params_pbr",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="object_set_material_params_pbr", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "ambient_occlusion",                         lookup_key: Simple {                             key: "ambient_occlusion",                             py_key: Py(                                 0x00007f80de3850f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "ambient_occlusion",                                         Py(                                             0x00007f80de3850b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de493c70,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "color",                         lookup_key: Simple {                             key: "color",                             py_key: Py(                                 0x00007f80de37d800,                             ),                             path: LookupPath(                                 [                                     S(                                         "color",                                         Py(                                             0x00007f80de37d830,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3da40,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "a",                                                 lookup_key: Simple {                                                     key: "a",                                                     py_key: Py(                                                         0x00007f80f1a3e378,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "a",                                                                 Py(                                                                     0x00007f80f1a3e378,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a36f50,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "b",                                                 lookup_key: Simple {                                                     key: "b",                                                     py_key: Py(                                                         0x00007f80f1a3e3a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "b",                                                                 Py(                                                                     0x00007f80f1a3e3a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a37370,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "g",                                                 lookup_key: Simple {                                                     key: "g",                                                     py_key: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "g",                                                                 Py(                                                                     0x00007f80f1a3e498,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e498,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "r",                                                 lookup_key: Simple {                                                     key: "r",                                                     py_key: Py(                                                         0x00007f80f1a3e6a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "r",                                                                 Py(                                                                     0x00007f80f1a3e6a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3b710,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Color",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c6208d0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Color",                             },                         ),                         frozen: false,                     },                     Field {                         name: "metalness",                         lookup_key: Simple {                             key: "metalness",                             py_key: Py(                                 0x00007f80de385170,                             ),                             path: LookupPath(                                 [                                     S(                                         "metalness",                                         Py(                                             0x00007f80de385130,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de493cb0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3851b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3851f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "roughness",                         lookup_key: Simple {                             key: "roughness",                             py_key: Py(                                 0x00007f80de385230,                             ),                             path: LookupPath(                                 [                                     S(                                         "roughness",                                         Py(                                             0x00007f80de385270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de493d30,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37d860,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37d890,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de441660,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "object_set_material_params_pbr": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de441660,                                                 ),                                             ],                                         },                                         expected_repr: "'object_set_material_params_pbr'",                                         name: "literal['object_set_material_params_pbr']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['object_set_material_params_pbr']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "object_set_material_params_pbr",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1ba0b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "object_set_material_params_pbr",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, ambient_occlusion: float, color: kittycad.models.color.Color, metalness: float, object_id: str, roughness: float, type: Literal['object_set_material_params_pbr'] = 'object_set_material_params_pbr') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

ambient_occlusion: float[source]
color: Color[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

metalness: float[source]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'ambient_occlusion': FieldInfo(annotation=float, required=True), 'color': FieldInfo(annotation=Color, required=True), 'metalness': FieldInfo(annotation=float, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'roughness': FieldInfo(annotation=float, required=True), 'type': FieldInfo(annotation=Literal['object_set_material_params_pbr'], required=False, default='object_set_material_params_pbr')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

roughness: float[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['object_set_material_params_pbr'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.object_visible(**data)[source][source]

Hide or show an object

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'hidden': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['object_visible']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.object_visible'>, 'config': {'title': 'object_visible'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.object_visible'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.object_visible'>>]}, 'ref': 'kittycad.models.modeling_cmd.object_visible:93929008074048', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'hidden': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'object_visible', 'schema': {'expected': ['object_visible'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'object_visible', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d290d40,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de493830,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "object_visible",                                             },                                             expected_py: None,                                             name: "literal['object_visible']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "hidden": SerField {                         key_py: Py(                             0x00007f80f00a85a0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "object_visible",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="object_visible", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "hidden",                         lookup_key: Simple {                             key: "hidden",                             py_key: Py(                                 0x00007f80de366cd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "hidden",                                         Py(                                             0x00007f80de366d00,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00a85a0,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de355030,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de355230,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de366d30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de366d60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de493830,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "object_visible": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de493830,                                                 ),                                             ],                                         },                                         expected_repr: "'object_visible'",                                         name: "literal['object_visible']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['object_visible']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "object_visible",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d290d40,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "object_visible",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, hidden: bool, object_id: str, type: Literal['object_visible'] = 'object_visible') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

hidden: bool[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'hidden': FieldInfo(annotation=bool, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['object_visible'], required=False, default='object_visible')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['object_visible'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.path_get_curve_uuid(**data)[source][source]

Obtain curve id by index

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'index': <class 'int'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['path_get_curve_uuid']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.path_get_curve_uuid'>, 'config': {'title': 'path_get_curve_uuid'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.path_get_curve_uuid'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.path_get_curve_uuid'>>]}, 'ref': 'kittycad.models.modeling_cmd.path_get_curve_uuid:93929008707328', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'index': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'path_get_curve_uuid', 'schema': {'expected': ['path_get_curve_uuid'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'path_get_curve_uuid', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d32b700,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19b570,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "path_get_curve_uuid",                                             },                                             expected_py: None,                                             name: "literal['path_get_curve_uuid']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "index": SerField {                         key_py: Py(                             0x00007f80f19fae20,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "path_get_curve_uuid",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="path_get_curve_uuid", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "index",                         lookup_key: Simple {                             key: "index",                             py_key: Py(                                 0x00007f80de258a50,                             ),                             path: LookupPath(                                 [                                     S(                                         "index",                                         Py(                                             0x00007f80de258ae0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f19fae20,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de258990,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de2589c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de258930,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de258b10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19b570,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "path_get_curve_uuid": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19b570,                                                 ),                                             ],                                         },                                         expected_repr: "'path_get_curve_uuid'",                                         name: "literal['path_get_curve_uuid']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['path_get_curve_uuid']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "path_get_curve_uuid",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d32b700,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "path_get_curve_uuid",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, index: int, path_id: str, type: Literal['path_get_curve_uuid'] = 'path_get_curve_uuid') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

index: int[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'index': FieldInfo(annotation=int, required=True), 'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['path_get_curve_uuid'], required=False, default='path_get_curve_uuid')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['path_get_curve_uuid'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.path_get_curve_uuids_for_vertices(**data)[source][source]

Obtain curve ids for vertex ids

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['path_get_curve_uuids_for_vertices'], 'vertex_ids': typing.List[str]}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.path_get_curve_uuids_for_vertices'>, 'config': {'title': 'path_get_curve_uuids_for_vertices'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.path_get_curve_uuids_for_vertices'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.path_get_curve_uuids_for_vertices'>>]}, 'ref': 'kittycad.models.modeling_cmd.path_get_curve_uuids_for_vertices:93929008694656', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'path_get_curve_uuids_for_vertices', 'schema': {'expected': ['path_get_curve_uuids_for_vertices'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'vertex_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}}, 'model_name': 'path_get_curve_uuids_for_vertices', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d328580,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "vertex_ids": SerField {                         key_py: Py(                             0x00007f80de4babb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163640,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "path_get_curve_uuids_for_vertices",                                             },                                             expected_py: None,                                             name: "literal['path_get_curve_uuids_for_vertices']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "path_get_curve_uuids_for_vertices",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="path_get_curve_uuids_for_vertices", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de25a4c0,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de25a580,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de25a790,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de25a760,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163640,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "path_get_curve_uuids_for_vertices": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163640,                                                 ),                                             ],                                         },                                         expected_repr: "'path_get_curve_uuids_for_vertices'",                                         name: "literal['path_get_curve_uuids_for_vertices']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['path_get_curve_uuids_for_vertices']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "vertex_ids",                         lookup_key: Simple {                             key: "vertex_ids",                             py_key: Py(                                 0x00007f80de251530,                             ),                             path: LookupPath(                                 [                                     S(                                         "vertex_ids",                                         Py(                                             0x00007f80de2514f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4babb0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                 ],                 model_name: "path_get_curve_uuids_for_vertices",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d328580,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "path_get_curve_uuids_for_vertices",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path_id: str, type: Literal['path_get_curve_uuids_for_vertices'] = 'path_get_curve_uuids_for_vertices', vertex_ids: List[str]) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['path_get_curve_uuids_for_vertices'], required=False, default='path_get_curve_uuids_for_vertices'), 'vertex_ids': FieldInfo(annotation=List[str], required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['path_get_curve_uuids_for_vertices'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

vertex_ids: List[str][source]
class kittycad.models.modeling_cmd.path_get_info(**data)[source][source]

Query the given path.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['path_get_info']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.path_get_info'>, 'config': {'title': 'path_get_info'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.path_get_info'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.path_get_info'>>]}, 'ref': 'kittycad.models.modeling_cmd.path_get_info:93929008682544', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'path_get_info', 'schema': {'expected': ['path_get_info'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'path_get_info', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d325630,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19b670,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "path_get_info",                                             },                                             expected_py: None,                                             name: "literal['path_get_info']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "path_get_info",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="path_get_info", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de258b70,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de258ba0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de258bd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de258c00,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19b670,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "path_get_info": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19b670,                                                 ),                                             ],                                         },                                         expected_repr: "'path_get_info'",                                         name: "literal['path_get_info']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['path_get_info']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "path_get_info",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d325630,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "path_get_info",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path_id: str, type: Literal['path_get_info'] = 'path_get_info') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['path_get_info'], required=False, default='path_get_info')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['path_get_info'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.path_get_sketch_target_uuid(**data)[source][source]

Obtain the sketch target id (if the path was drawn in sketchmode) for a path

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['path_get_sketch_target_uuid']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.path_get_sketch_target_uuid'>, 'config': {'title': 'path_get_sketch_target_uuid'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.path_get_sketch_target_uuid'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.path_get_sketch_target_uuid'>>]}, 'ref': 'kittycad.models.modeling_cmd.path_get_sketch_target_uuid:93928977419120', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'path_get_sketch_target_uuid', 'schema': {'expected': ['path_get_sketch_target_uuid'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'path_get_sketch_target_uuid', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8b554b70,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df1636e0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "path_get_sketch_target_uuid",                                             },                                             expected_py: None,                                             name: "literal['path_get_sketch_target_uuid']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "path_get_sketch_target_uuid",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="path_get_sketch_target_uuid", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de26b240,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de26b270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de26b2a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de26b2d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df1636e0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "path_get_sketch_target_uuid": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df1636e0,                                                 ),                                             ],                                         },                                         expected_repr: "'path_get_sketch_target_uuid'",                                         name: "literal['path_get_sketch_target_uuid']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['path_get_sketch_target_uuid']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "path_get_sketch_target_uuid",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8b554b70,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "path_get_sketch_target_uuid",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path_id: str, type: Literal['path_get_sketch_target_uuid'] = 'path_get_sketch_target_uuid') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['path_get_sketch_target_uuid'], required=False, default='path_get_sketch_target_uuid')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['path_get_sketch_target_uuid'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.path_get_vertex_uuids(**data)[source][source]

Obtain vertex ids for a path

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'path_id': <class 'str'>, 'type': typing.Literal['path_get_vertex_uuids']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.path_get_vertex_uuids'>, 'config': {'title': 'path_get_vertex_uuids'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.path_get_vertex_uuids'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.path_get_vertex_uuids'>>]}, 'ref': 'kittycad.models.modeling_cmd.path_get_vertex_uuids:93928977416224', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'path_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'path_get_vertex_uuids', 'schema': {'expected': ['path_get_vertex_uuids'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'path_get_vertex_uuids', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8b554020,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "path_id": SerField {                         key_py: Py(                             0x00007f80e0d61f80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df1548b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "path_get_vertex_uuids",                                             },                                             expected_py: None,                                             name: "literal['path_get_vertex_uuids']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "path_get_vertex_uuids",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="path_get_vertex_uuids", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "path_id",                         lookup_key: Simple {                             key: "path_id",                             py_key: Py(                                 0x00007f80de2696b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "path_id",                                         Py(                                             0x00007f80de2696e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e0d61f80,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de269710,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de269740,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df1548b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "path_get_vertex_uuids": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df1548b0,                                                 ),                                             ],                                         },                                         expected_repr: "'path_get_vertex_uuids'",                                         name: "literal['path_get_vertex_uuids']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['path_get_vertex_uuids']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "path_get_vertex_uuids",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8b554020,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "path_get_vertex_uuids",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, path_id: str, type: Literal['path_get_vertex_uuids'] = 'path_get_vertex_uuids') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'path_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['path_get_vertex_uuids'], required=False, default='path_get_vertex_uuids')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

path_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['path_get_vertex_uuids'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.plane_intersect_and_project(**data)[source][source]

Utility method. Performs both a ray cast and projection to plane-local coordinates. Returns the plane coordinates for the given window coordinates.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'plane_id': <class 'str'>, 'type': typing.Literal['plane_intersect_and_project'], 'window': <class 'kittycad.models.point2d.Point2d'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.plane_intersect_and_project'>, 'config': {'title': 'plane_intersect_and_project'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.plane_intersect_and_project'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.plane_intersect_and_project'>>]}, 'ref': 'kittycad.models.modeling_cmd.plane_intersect_and_project:93929008807328', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'plane_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'plane_intersect_and_project', 'schema': {'expected': ['plane_intersect_and_project'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}}, 'model_name': 'plane_intersect_and_project', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d343da0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "plane_id": SerField {                         key_py: Py(                             0x00007f80de4b9470,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163820,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "plane_intersect_and_project",                                             },                                             expected_py: None,                                             name: "literal['plane_intersect_and_project']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "window": SerField {                         key_py: Py(                             0x00007f80e29601e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "plane_intersect_and_project",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="plane_intersect_and_project", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "plane_id",                         lookup_key: Simple {                             key: "plane_id",                             py_key: Py(                                 0x00007f80de284170,                             ),                             path: LookupPath(                                 [                                     S(                                         "plane_id",                                         Py(                                             0x00007f80de284130,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b9470,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de27f120,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de27f180,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163820,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "plane_intersect_and_project": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163820,                                                 ),                                             ],                                         },                                         expected_repr: "'plane_intersect_and_project'",                                         name: "literal['plane_intersect_and_project']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['plane_intersect_and_project']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "window",                         lookup_key: Simple {                             key: "window",                             py_key: Py(                                 0x00007f80de27f1e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "window",                                         Py(                                             0x00007f80de27f210,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e29601e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de2840c0,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de2840c0,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "plane_intersect_and_project",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d343da0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "plane_intersect_and_project",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, plane_id: str, type: Literal['plane_intersect_and_project'] = 'plane_intersect_and_project', window: kittycad.models.point2d.Point2d) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'plane_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['plane_intersect_and_project'], required=False, default='plane_intersect_and_project'), 'window': FieldInfo(annotation=Point2d, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

plane_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['plane_intersect_and_project'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

window: Point2d[source]
class kittycad.models.modeling_cmd.plane_set_color(**data)[source][source]

Set the color of a plane.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'color': <class 'kittycad.models.color.Color'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'plane_id': <class 'str'>, 'type': typing.Literal['plane_set_color']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.plane_set_color'>, 'config': {'title': 'plane_set_color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.plane_set_color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.plane_set_color'>>]}, 'ref': 'kittycad.models.modeling_cmd.plane_set_color:93929008343264', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'plane_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'plane_set_color', 'schema': {'expected': ['plane_set_color'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'plane_set_color', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2d28e0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b9330,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "plane_set_color",                                             },                                             expected_py: None,                                             name: "literal['plane_set_color']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "color": SerField {                         key_py: Py(                             0x00007f80f0a3da40,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c6208d0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "b": SerField {                                                     key_py: Py(                                                         0x00007f80f1a37370,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "r": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3b710,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "a": SerField {                                                     key_py: Py(                                                         0x00007f80f1a36f50,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "g": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 4,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Color",                                 },                             ),                         ),                         required: true,                     },                     "plane_id": SerField {                         key_py: Py(                             0x00007f80de4b9470,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "plane_set_color",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="plane_set_color", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "color",                         lookup_key: Simple {                             key: "color",                             py_key: Py(                                 0x00007f80de3db420,                             ),                             path: LookupPath(                                 [                                     S(                                         "color",                                         Py(                                             0x00007f80de3db450,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3da40,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "a",                                                 lookup_key: Simple {                                                     key: "a",                                                     py_key: Py(                                                         0x00007f80f1a3e378,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "a",                                                                 Py(                                                                     0x00007f80f1a3e378,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a36f50,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "b",                                                 lookup_key: Simple {                                                     key: "b",                                                     py_key: Py(                                                         0x00007f80f1a3e3a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "b",                                                                 Py(                                                                     0x00007f80f1a3e3a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a37370,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "g",                                                 lookup_key: Simple {                                                     key: "g",                                                     py_key: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "g",                                                                 Py(                                                                     0x00007f80f1a3e498,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e498,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "r",                                                 lookup_key: Simple {                                                     key: "r",                                                     py_key: Py(                                                         0x00007f80f1a3e6a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "r",                                                                 Py(                                                                     0x00007f80f1a3e6a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3b710,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Color",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c6208d0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Color",                             },                         ),                         frozen: false,                     },                     Field {                         name: "plane_id",                         lookup_key: Simple {                             key: "plane_id",                             py_key: Py(                                 0x00007f80de3dd3f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "plane_id",                                         Py(                                             0x00007f80de3dd3b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b9470,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3db480,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3db4b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b9330,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "plane_set_color": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b9330,                                                 ),                                             ],                                         },                                         expected_repr: "'plane_set_color'",                                         name: "literal['plane_set_color']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['plane_set_color']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "plane_set_color",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2d28e0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "plane_set_color",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, color: kittycad.models.color.Color, plane_id: str, type: Literal['plane_set_color'] = 'plane_set_color') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

color: Color[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'color': FieldInfo(annotation=Color, required=True), 'plane_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['plane_set_color'], required=False, default='plane_set_color')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

plane_id: str[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['plane_set_color'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.reconfigure_stream(**data)[source][source]

Reconfigure the stream.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'fps': <class 'int'>, 'height': <class 'int'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['reconfigure_stream'], 'width': <class 'int'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.reconfigure_stream'>, 'config': {'title': 'reconfigure_stream'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.reconfigure_stream'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.reconfigure_stream'>>]}, 'ref': 'kittycad.models.modeling_cmd.reconfigure_stream:93929008835056', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'fps': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'height': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'reconfigure_stream', 'schema': {'expected': ['reconfigure_stream'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'width': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}}, 'model_name': 'reconfigure_stream', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d34a9f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "fps": SerField {                         key_py: Py(                             0x00007f80e159bae0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "height": SerField {                         key_py: Py(                             0x00007f80f03bca20,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "width": SerField {                         key_py: Py(                             0x00007f80f0f0b1b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Int(                                 IntSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bbb70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "reconfigure_stream",                                             },                                             expected_py: None,                                             name: "literal['reconfigure_stream']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "reconfigure_stream",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="reconfigure_stream", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "fps",                         lookup_key: Simple {                             key: "fps",                             py_key: Py(                                 0x00007f80de273ed0,                             ),                             path: LookupPath(                                 [                                     S(                                         "fps",                                         Py(                                             0x00007f80de273cc0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e159bae0,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "height",                         lookup_key: Simple {                             key: "height",                             py_key: Py(                                 0x00007f80de273b40,                             ),                             path: LookupPath(                                 [                                     S(                                         "height",                                         Py(                                             0x00007f80de273c90,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f03bca20,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de28e790,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de28e850,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bbb70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "reconfigure_stream": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bbb70,                                                 ),                                             ],                                         },                                         expected_repr: "'reconfigure_stream'",                                         name: "literal['reconfigure_stream']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['reconfigure_stream']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "width",                         lookup_key: Simple {                             key: "width",                             py_key: Py(                                 0x00007f80de28e880,                             ),                             path: LookupPath(                                 [                                     S(                                         "width",                                         Py(                                             0x00007f80de28e820,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0f0b1b0,                         ),                         validator: Int(                             IntValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                 ],                 model_name: "reconfigure_stream",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d34a9f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "reconfigure_stream",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, fps: int, height: int, type: Literal['reconfigure_stream'] = 'reconfigure_stream', width: int) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

fps: int[source]
classmethod from_orm(obj)[source]
Return type:

Self

height: int[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'fps': FieldInfo(annotation=int, required=True), 'height': FieldInfo(annotation=int, required=True), 'type': FieldInfo(annotation=Literal['reconfigure_stream'], required=False, default='reconfigure_stream'), 'width': FieldInfo(annotation=int, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['reconfigure_stream'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

width: int[source]
class kittycad.models.modeling_cmd.remove_scene_objects(**data)[source][source]

Remove scene objects.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_ids': typing.List[str], 'type': typing.Literal['remove_scene_objects']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.remove_scene_objects'>, 'config': {'title': 'remove_scene_objects'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.remove_scene_objects'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.remove_scene_objects'>>]}, 'ref': 'kittycad.models.modeling_cmd.remove_scene_objects:93929008781904', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'remove_scene_objects', 'schema': {'expected': ['remove_scene_objects'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'remove_scene_objects', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d33da50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bb670,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "remove_scene_objects",                                             },                                             expected_py: None,                                             name: "literal['remove_scene_objects']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_ids": SerField {                         key_py: Py(                             0x00007f80de4bb730,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "remove_scene_objects",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="remove_scene_objects", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_ids",                         lookup_key: Simple {                             key: "object_ids",                             py_key: Py(                                 0x00007f80de277470,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_ids",                                         Py(                                             0x00007f80de277370,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4bb730,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de273c00,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de271ec0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bb670,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "remove_scene_objects": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bb670,                                                 ),                                             ],                                         },                                         expected_repr: "'remove_scene_objects'",                                         name: "literal['remove_scene_objects']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['remove_scene_objects']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "remove_scene_objects",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d33da50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "remove_scene_objects",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_ids: List[str], type: Literal['remove_scene_objects'] = 'remove_scene_objects') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_ids': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['remove_scene_objects'], required=False, default='remove_scene_objects')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_ids: List[str][source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['remove_scene_objects'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.revolve(**data)[source][source]

Command for revolving a solid 2d.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'angle': <class 'kittycad.models.angle.Angle'>, 'axis': <class 'kittycad.models.point3d.Point3d'>, 'axis_is_2d': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'origin': <class 'kittycad.models.point3d.Point3d'>, 'target': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'tolerance': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['revolve']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.revolve'>, 'config': {'title': 'revolve'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.revolve'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.revolve'>>]}, 'ref': 'kittycad.models.modeling_cmd.revolve:93929007331552', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'angle': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.angle.Angle'>, 'config': {'title': 'Angle'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.angle.Angle'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.angle.Angle'>>]}, 'ref': 'kittycad.models.angle.Angle:93928997062896', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitAngle'>, 'members': [UnitAngle.DEGREES, UnitAngle.RADIANS], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_angle.UnitAngle:93928997104896', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'value': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Angle', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'axis': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'axis_is_2d': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'origin': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.point3d.Point3d:93928994992000', 'type': 'definition-ref'}, 'type': 'model-field'}, 'target': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tolerance': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'revolve', 'schema': {'expected': ['revolve'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'revolve', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1db8e0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "axis_is_2d": SerField {                         key_py: Py(                             0x00007f80de473f30,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                     "origin": SerField {                         key_py: Py(                             0x00007f80f1a3b060,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "angle": SerField {                         key_py: Py(                             0x00007f80efee13e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c8108f0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "value": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3cdc0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "unit": SerField {                                                     key_py: Py(                                                         0x00007f80f00c29a0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Enum(                                                             EnumSerializer {                                                                 class: Py(                                                                     0x0000556d8c81ad00,                                                                 ),                                                                 serializer: Some(                                                                     Str(                                                                         StrSerializer,                                                                     ),                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Angle",                                 },                             ),                         ),                         required: true,                     },                     "axis": SerField {                         key_py: Py(                             0x00007f80f00bca80,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Recursive(                                 DefinitionRefSerializer {                                     definition: "...",                                     retry_with_lax_check: true,                                 },                             ),                         ),                         required: true,                     },                     "target": SerField {                         key_py: Py(                             0x00007f80f1a3c6e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "tolerance": SerField {                         key_py: Py(                             0x00007f80e1328330,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4748d0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "revolve",                                             },                                             expected_py: None,                                             name: "literal['revolve']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 7,             },         ),         has_extra: false,         root_model: false,         name: "revolve",     }, ), definitions=[Model(ModelSerializer { class: Py(0x556d8c616f80), serializer: Fields(GeneralFieldsSerializer { fields: {"y": SerField { key_py: Py(0x7f80f1a3e7f8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "z": SerField { key_py: Py(0x7f80f1a3e828), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }, "x": SerField { key_py: Py(0x7f80f1a3d0b8), alias: None, alias_py: None, serializer: Some(Float(FloatSerializer { inf_nan_mode: Null })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Point3d" })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="revolve", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "angle",                         lookup_key: Simple {                             key: "angle",                             py_key: Py(                                 0x00007f80de496790,                             ),                             path: LookupPath(                                 [                                     S(                                         "angle",                                         Py(                                             0x00007f80de4967c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80efee13e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "unit",                                                 lookup_key: Simple {                                                     key: "unit",                                                     py_key: Py(                                                         0x00007f80de4966d0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "unit",                                                                 Py(                                                                     0x00007f80de496700,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f00c29a0,                                                 ),                                                 validator: StrEnum(                                                     EnumValidator {                                                         phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                         class: Py(                                                             0x0000556d8c81ad00,                                                         ),                                                         lookup: LiteralLookup {                                                             expected_bool: None,                                                             expected_int: None,                                                             expected_str: Some(                                                                 {                                                                     "radians": 1,                                                                     "degrees": 0,                                                                 },                                                             ),                                                             expected_py_dict: None,                                                             expected_py_values: None,                                                             values: [                                                                 Py(                                                                     0x00007f80dede6c90,                                                                 ),                                                                 Py(                                                                     0x00007f80dede6cf0,                                                                 ),                                                             ],                                                         },                                                         missing: None,                                                         expected_repr: "'degrees' or 'radians'",                                                         strict: false,                                                         class_repr: "UnitAngle",                                                         name: "str-enum[UnitAngle]",                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "value",                                                 lookup_key: Simple {                                                     key: "value",                                                     py_key: Py(                                                         0x00007f80de496730,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "value",                                                                 Py(                                                                     0x00007f80de496760,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3cdc0,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Angle",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c8108f0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Angle",                             },                         ),                         frozen: false,                     },                     Field {                         name: "axis",                         lookup_key: Simple {                             key: "axis",                             py_key: Py(                                 0x00007f80de4967f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "axis",                                         Py(                                             0x00007f80de496820,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00bca80,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "axis_is_2d",                         lookup_key: Simple {                             key: "axis_is_2d",                             py_key: Py(                                 0x00007f80def1af30,                             ),                             path: LookupPath(                                 [                                     S(                                         "axis_is_2d",                                         Py(                                             0x00007f80de430770,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de473f30,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "origin",                         lookup_key: Simple {                             key: "origin",                             py_key: Py(                                 0x00007f80de496850,                             ),                             path: LookupPath(                                 [                                     S(                                         "origin",                                         Py(                                             0x00007f80de496880,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b060,                         ),                         validator: DefinitionRef(                             DefinitionRefValidator {                                 definition: "...",                             },                         ),                         frozen: false,                     },                     Field {                         name: "target",                         lookup_key: Simple {                             key: "target",                             py_key: Py(                                 0x00007f80de4968b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "target",                                         Py(                                             0x00007f80de4968e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3c6e0,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x0000556d8d039790,                                 ),                                 config: Py(                                     0x00007f80de4322c0,                                 ),                                 name: "function-after[ModelingCmdId(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "tolerance",                         lookup_key: Simple {                             key: "tolerance",                             py_key: Py(                                 0x00007f80de431ef0,                             ),                             path: LookupPath(                                 [                                     S(                                         "tolerance",                                         Py(                                             0x00007f80de430f30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e1328330,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de4322c0,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de496910,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de496940,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4748d0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "revolve": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4748d0,                                                 ),                                             ],                                         },                                         expected_repr: "'revolve'",                                         name: "literal['revolve']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['revolve']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "revolve",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1db8e0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "revolve",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "x", lookup_key: Simple { key: "x", py_key: Py(0x7f80f1a3e7c8), path: LookupPath([S("x", Py(0x7f80f1a3e7c8))]) }, name_py: Py(0x7f80f1a3d0b8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "y", lookup_key: Simple { key: "y", py_key: Py(0x7f80f1a3e7f8), path: LookupPath([S("y", Py(0x7f80f1a3e7f8))]) }, name_py: Py(0x7f80f1a3e7f8), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }, Field { name: "z", lookup_key: Simple { key: "z", py_key: Py(0x7f80f1a3e828), path: LookupPath([S("z", Py(0x7f80f1a3e828))]) }, name_py: Py(0x7f80f1a3e828), validator: Float(FloatValidator { strict: false, allow_inf_nan: true }), frozen: false }], model_name: "Point3d", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x556d8c616f80), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f80e0935e70), name: "Point3d" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, angle: kittycad.models.angle.Angle, axis: kittycad.models.point3d.Point3d, axis_is_2d: bool, origin: kittycad.models.point3d.Point3d, target: kittycad.models.modeling_cmd_id.ModelingCmdId, tolerance: kittycad.models.length_unit.LengthUnit, type: Literal['revolve'] = 'revolve') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

angle: Angle[source]
axis: Point3d[source]
axis_is_2d: bool[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'angle': FieldInfo(annotation=Angle, required=True), 'axis': FieldInfo(annotation=Point3d, required=True), 'axis_is_2d': FieldInfo(annotation=bool, required=True), 'origin': FieldInfo(annotation=Point3d, required=True), 'target': FieldInfo(annotation=ModelingCmdId, required=True), 'tolerance': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['revolve'], required=False, default='revolve')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

origin: Point3d[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

target: ModelingCmdId[source]
tolerance: LengthUnit[source]
type: Literal['revolve'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.revolve_about_edge(**data)[source][source]

Command for revolving a solid 2d about a brep edge

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'angle': <class 'kittycad.models.angle.Angle'>, 'edge_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'target': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'tolerance': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['revolve_about_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.revolve_about_edge'>, 'config': {'title': 'revolve_about_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.revolve_about_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.revolve_about_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.revolve_about_edge:93929007373056', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'angle': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.angle.Angle'>, 'config': {'title': 'Angle'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.angle.Angle'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.angle.Angle'>>]}, 'ref': 'kittycad.models.angle.Angle:93928997062896', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitAngle'>, 'members': [UnitAngle.DEGREES, UnitAngle.RADIANS], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_angle.UnitAngle:93928997104896', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'value': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Angle', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'target': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.modeling_cmd_id.ModelingCmdId'>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tolerance': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'revolve_about_edge', 'schema': {'expected': ['revolve_about_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'revolve_about_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1e5b00,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "tolerance": SerField {                         key_py: Py(                             0x00007f80e1328330,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de480330,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "revolve_about_edge",                                             },                                             expected_py: None,                                             name: "literal['revolve_about_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "target": SerField {                         key_py: Py(                             0x00007f80f1a3c6e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "angle": SerField {                         key_py: Py(                             0x00007f80efee13e0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c8108f0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "unit": SerField {                                                     key_py: Py(                                                         0x00007f80f00c29a0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Enum(                                                             EnumSerializer {                                                                 class: Py(                                                                     0x0000556d8c81ad00,                                                                 ),                                                                 serializer: Some(                                                                     Str(                                                                         StrSerializer,                                                                     ),                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "value": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3cdc0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Angle",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 5,             },         ),         has_extra: false,         root_model: false,         name: "revolve_about_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="revolve_about_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "angle",                         lookup_key: Simple {                             key: "angle",                             py_key: Py(                                 0x00007f80de4c4180,                             ),                             path: LookupPath(                                 [                                     S(                                         "angle",                                         Py(                                             0x00007f80de4c41b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80efee13e0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "unit",                                                 lookup_key: Simple {                                                     key: "unit",                                                     py_key: Py(                                                         0x00007f80de4c40c0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "unit",                                                                 Py(                                                                     0x00007f80de4c40f0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f00c29a0,                                                 ),                                                 validator: StrEnum(                                                     EnumValidator {                                                         phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                         class: Py(                                                             0x0000556d8c81ad00,                                                         ),                                                         lookup: LiteralLookup {                                                             expected_bool: None,                                                             expected_int: None,                                                             expected_str: Some(                                                                 {                                                                     "radians": 1,                                                                     "degrees": 0,                                                                 },                                                             ),                                                             expected_py_dict: None,                                                             expected_py_values: None,                                                             values: [                                                                 Py(                                                                     0x00007f80dede6c90,                                                                 ),                                                                 Py(                                                                     0x00007f80dede6cf0,                                                                 ),                                                             ],                                                         },                                                         missing: None,                                                         expected_repr: "'degrees' or 'radians'",                                                         strict: false,                                                         class_repr: "UnitAngle",                                                         name: "str-enum[UnitAngle]",                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "value",                                                 lookup_key: Simple {                                                     key: "value",                                                     py_key: Py(                                                         0x00007f80de4c4120,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "value",                                                                 Py(                                                                     0x00007f80de4c4150,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3cdc0,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Angle",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c8108f0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Angle",                             },                         ),                         frozen: false,                     },                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de4c41e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de4c4210,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "target",                         lookup_key: Simple {                             key: "target",                             py_key: Py(                                 0x00007f80de4c4240,                             ),                             path: LookupPath(                                 [                                     S(                                         "target",                                         Py(                                             0x00007f80de4c4270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3c6e0,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x0000556d8d039790,                                 ),                                 config: Py(                                     0x00007f80de4329c0,                                 ),                                 name: "function-after[ModelingCmdId(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "tolerance",                         lookup_key: Simple {                             key: "tolerance",                             py_key: Py(                                 0x00007f80de432ab0,                             ),                             path: LookupPath(                                 [                                     S(                                         "tolerance",                                         Py(                                             0x00007f80de4329f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e1328330,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de4329c0,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4c42a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de4c42d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de480330,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "revolve_about_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de480330,                                                 ),                                             ],                                         },                                         expected_repr: "'revolve_about_edge'",                                         name: "literal['revolve_about_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['revolve_about_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "revolve_about_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1e5b00,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "revolve_about_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, angle: kittycad.models.angle.Angle, edge_id: str, target: kittycad.models.modeling_cmd_id.ModelingCmdId, tolerance: kittycad.models.length_unit.LengthUnit, type: Literal['revolve_about_edge'] = 'revolve_about_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

angle: Angle[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'angle': FieldInfo(annotation=Angle, required=True), 'edge_id': FieldInfo(annotation=str, required=True), 'target': FieldInfo(annotation=ModelingCmdId, required=True), 'tolerance': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['revolve_about_edge'], required=False, default='revolve_about_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

target: ModelingCmdId[source]
tolerance: LengthUnit[source]
type: Literal['revolve_about_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.scene_clear_all(**data)[source][source]

Removes all of the Objects in the scene

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['scene_clear_all']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.scene_clear_all'>, 'config': {'title': 'scene_clear_all'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.scene_clear_all'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.scene_clear_all'>>]}, 'ref': 'kittycad.models.modeling_cmd.scene_clear_all:93929007903264', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'scene_clear_all', 'schema': {'expected': ['scene_clear_all'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'scene_clear_all', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d267220,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de492af0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "scene_clear_all",                                             },                                             expected_py: None,                                             name: "literal['scene_clear_all']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "scene_clear_all",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="scene_clear_all", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de333030,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de333060,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de492af0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "scene_clear_all": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de492af0,                                                 ),                                             ],                                         },                                         expected_repr: "'scene_clear_all'",                                         name: "literal['scene_clear_all']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['scene_clear_all']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "scene_clear_all",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d267220,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "scene_clear_all",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['scene_clear_all'] = 'scene_clear_all') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['scene_clear_all'], required=False, default='scene_clear_all')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['scene_clear_all'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_add(**data)[source][source]

Adds one or more entities (by UUID) to the selection.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entities': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['select_add']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_add'>, 'config': {'title': 'select_add'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_add'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_add'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_add:93929007873360', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entities': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_add', 'schema': {'expected': ['select_add'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_add', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d25fd50,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4928f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_add",                                             },                                             expected_py: None,                                             name: "literal['select_add']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entities": SerField {                         key_py: Py(                             0x00007f80e2d46ef0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "select_add",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_add", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entities",                         lookup_key: Simple {                             key: "entities",                             py_key: Py(                                 0x00007f80de33d6b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entities",                                         Py(                                             0x00007f80de33d670,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2d46ef0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de330ff0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de330f60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4928f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_add": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4928f0,                                                 ),                                             ],                                         },                                         expected_repr: "'select_add'",                                         name: "literal['select_add']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_add']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_add",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d25fd50,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_add",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entities: List[str], type: Literal['select_add'] = 'select_add') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entities: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entities': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['select_add'], required=False, default='select_add')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['select_add'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_clear(**data)[source][source]

Clear the selection

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['select_clear']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_clear'>, 'config': {'title': 'select_clear'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_clear'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_clear'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_clear:93929009149360', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_clear', 'schema': {'expected': ['select_clear'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_clear', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_exit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_extrusion_face_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'view_isometric': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3975b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de305270,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_clear",                                             },                                             expected_py: None,                                             name: "literal['select_clear']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "select_clear",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_clear", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2f10e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2f1110,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de305270,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_clear": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de305270,                                                 ),                                             ],                                         },                                         expected_repr: "'select_clear'",                                         name: "literal['select_clear']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_clear']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_clear",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3975b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_clear",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['select_clear'] = 'select_clear') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['select_clear'], required=False, default='select_clear')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['select_clear'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_get(**data)[source][source]

Find all IDs of selected entities

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['select_get']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_get'>, 'config': {'title': 'select_get'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_get'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_get'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_get:93929009162096', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_get', 'schema': {'expected': ['select_get'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_get', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_exit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_clear': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_extrusion_face_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'view_isometric': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d39a770,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df1543b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_get",                                             },                                             expected_py: None,                                             name: "literal['select_get']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "select_get",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_get", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2f3090,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2f30c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df1543b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_get": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df1543b0,                                                 ),                                             ],                                         },                                         expected_repr: "'select_get'",                                         name: "literal['select_get']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_get']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_get",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d39a770,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_get",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['select_get'] = 'select_get') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['select_get'], required=False, default='select_get')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['select_get'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_remove(**data)[source][source]

Removes one or more entities (by UUID) from the selection.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entities': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['select_remove']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_remove'>, 'config': {'title': 'select_remove'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_remove'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_remove'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_remove:93929007892704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entities': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_remove', 'schema': {'expected': ['select_remove'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_remove', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2648e0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4929f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_remove",                                             },                                             expected_py: None,                                             name: "literal['select_remove']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entities": SerField {                         key_py: Py(                             0x00007f80e2d46ef0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "select_remove",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_remove", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entities",                         lookup_key: Simple {                             key: "entities",                             py_key: Py(                                 0x00007f80de33e1f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entities",                                         Py(                                             0x00007f80de33e0b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2d46ef0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de330c30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de330ea0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4929f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_remove": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4929f0,                                                 ),                                             ],                                         },                                         expected_repr: "'select_remove'",                                         name: "literal['select_remove']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_remove']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_remove",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2648e0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_remove",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entities: List[str], type: Literal['select_remove'] = 'select_remove') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entities: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entities': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['select_remove'], required=False, default='select_remove')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['select_remove'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_replace(**data)[source][source]

Replaces current selection with these entities (by UUID).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entities': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['select_replace']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_replace'>, 'config': {'title': 'select_replace'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_replace'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_replace'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_replace:93929007914080', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entities': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_replace', 'schema': {'expected': ['select_replace'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_replace', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d269c60,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entities": SerField {                         key_py: Py(                             0x00007f80e2d46ef0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de492c70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_replace",                                             },                                             expected_py: None,                                             name: "literal['select_replace']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "select_replace",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_replace", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entities",                         lookup_key: Simple {                             key: "entities",                             py_key: Py(                                 0x00007f80de33fcb0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entities",                                         Py(                                             0x00007f80de33fc70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2d46ef0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de348360,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3482d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de492c70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_replace": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de492c70,                                                 ),                                             ],                                         },                                         expected_repr: "'select_replace'",                                         name: "literal['select_replace']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_replace']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_replace",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d269c60,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_replace",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entities: List[str], type: Literal['select_replace'] = 'select_replace') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entities: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entities': FieldInfo(annotation=List[str], required=True), 'type': FieldInfo(annotation=Literal['select_replace'], required=False, default='select_replace')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['select_replace'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.select_with_point(**data)[source][source]

Modifies the selection by simulating a “mouse click” at the given x,y window coordinate Returns ID of whatever was selected.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'selected_at_window': <class 'kittycad.models.point2d.Point2d'>, 'selection_type': <enum 'SceneSelectionType'>, 'type': typing.Literal['select_with_point']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.select_with_point'>, 'config': {'title': 'select_with_point'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.select_with_point'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.select_with_point'>>]}, 'ref': 'kittycad.models.modeling_cmd.select_with_point:93929007863424', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'selected_at_window': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.point2d.Point2d'>, 'config': {'title': 'Point2d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point2d.Point2d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point2d.Point2d'>>]}, 'ref': 'kittycad.models.point2d.Point2d:93929007024704', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'Point2d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'selection_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'SceneSelectionType'>, 'members': [SceneSelectionType.REPLACE, SceneSelectionType.ADD, SceneSelectionType.REMOVE], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.scene_selection_type.SceneSelectionType:93929007187568', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'select_with_point', 'schema': {'expected': ['select_with_point'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'select_with_point', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d25d680,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df1552b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "select_with_point",                                             },                                             expected_py: None,                                             name: "literal['select_with_point']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "selected_at_window": SerField {                         key_py: Py(                             0x00007f80de4926f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8d190a40,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "y": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "x": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3d0b8,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 2,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Point2d",                                 },                             ),                         ),                         required: true,                     },                     "selection_type": SerField {                         key_py: Py(                             0x00007f80de492730,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d1b8670,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "select_with_point",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="select_with_point", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "selected_at_window",                         lookup_key: Simple {                             key: "selected_at_window",                             py_key: Py(                                 0x00007f80de32a530,                             ),                             path: LookupPath(                                 [                                     S(                                         "selected_at_window",                                         Py(                                             0x00007f80de32a3f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4926f0,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "x",                                                 lookup_key: Simple {                                                     key: "x",                                                     py_key: Py(                                                         0x00007f80f1a3e7c8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "x",                                                                 Py(                                                                     0x00007f80f1a3e7c8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3d0b8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de318680,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "y",                                                 lookup_key: Simple {                                                     key: "y",                                                     py_key: Py(                                                         0x00007f80f1a3e7f8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "y",                                                                 Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e7f8,                                                 ),                                                 validator: FunctionAfter(                                                     FunctionAfterValidator {                                                         validator: Float(                                                             FloatValidator {                                                                 strict: false,                                                                 allow_inf_nan: true,                                                             },                                                         ),                                                         func: Py(                                                             0x0000556d8cfac870,                                                         ),                                                         config: Py(                                                             0x00007f80de318680,                                                         ),                                                         name: "function-after[LengthUnit(), float]",                                                         field_name: None,                                                         info_arg: false,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Point2d",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8d190a40,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Point2d",                             },                         ),                         frozen: false,                     },                     Field {                         name: "selection_type",                         lookup_key: Simple {                             key: "selection_type",                             py_key: Py(                                 0x00007f80de32a570,                             ),                             path: LookupPath(                                 [                                     S(                                         "selection_type",                                         Py(                                             0x00007f80de32a430,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de492730,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d1b8670,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "add": 1,                                             "remove": 2,                                             "replace": 0,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de46f410,                                         ),                                         Py(                                             0x00007f80de46f530,                                         ),                                         Py(                                             0x00007f80de46f4d0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'replace', 'add' or 'remove'",                                 strict: false,                                 class_repr: "SceneSelectionType",                                 name: "str-enum[SceneSelectionType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de321e60,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de322010,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df1552b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "select_with_point": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df1552b0,                                                 ),                                             ],                                         },                                         expected_repr: "'select_with_point'",                                         name: "literal['select_with_point']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['select_with_point']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "select_with_point",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d25d680,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "select_with_point",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, selected_at_window: kittycad.models.point2d.Point2d, selection_type: kittycad.models.scene_selection_type.SceneSelectionType, type: Literal['select_with_point'] = 'select_with_point') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'selected_at_window': FieldInfo(annotation=Point2d, required=True), 'selection_type': FieldInfo(annotation=SceneSelectionType, required=True), 'type': FieldInfo(annotation=Literal['select_with_point'], required=False, default='select_with_point')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

selected_at_window: Point2d[source]
selection_type: SceneSelectionType[source]
type: Literal['select_with_point'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.send_object(**data)[source][source]

Send object to front or back.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'front': <class 'bool'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['send_object']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.send_object'>, 'config': {'title': 'send_object'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.send_object'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.send_object'>>]}, 'ref': 'kittycad.models.modeling_cmd.send_object:93929008288656', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'front': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'send_object', 'schema': {'expected': ['send_object'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'send_object', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2c5390,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b8db0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "send_object",                                             },                                             expected_py: None,                                             name: "literal['send_object']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "front": SerField {                         key_py: Py(                             0x00007f80df50a580,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Bool(                                 BoolSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "send_object",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="send_object", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "front",                         lookup_key: Simple {                             key: "front",                             py_key: Py(                                 0x00007f80de3c97a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "front",                                         Py(                                             0x00007f80de3c97d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df50a580,                         ),                         validator: Bool(                             BoolValidator {                                 strict: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3c39f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3c39b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3c9800,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3c9830,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b8db0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "send_object": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b8db0,                                                 ),                                             ],                                         },                                         expected_repr: "'send_object'",                                         name: "literal['send_object']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['send_object']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "send_object",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2c5390,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "send_object",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, front: bool, object_id: str, type: Literal['send_object'] = 'send_object') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

front: bool[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'front': FieldInfo(annotation=bool, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['send_object'], required=False, default='send_object')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['send_object'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_background_color(**data)[source][source]

Set the background color of the scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'color': <class 'kittycad.models.color.Color'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['set_background_color']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_background_color'>, 'config': {'title': 'set_background_color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_background_color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_background_color'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_background_color:93929008539856', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_background_color', 'schema': {'expected': ['set_background_color'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_background_color', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3028d0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4ba230,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_background_color",                                             },                                             expected_py: None,                                             name: "literal['set_background_color']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "color": SerField {                         key_py: Py(                             0x00007f80f0a3da40,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c6208d0,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "r": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3b710,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "b": SerField {                                                     key_py: Py(                                                         0x00007f80f1a37370,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "a": SerField {                                                     key_py: Py(                                                         0x00007f80f1a36f50,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "g": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         Float(                                                             FloatSerializer {                                                                 inf_nan_mode: Null,                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 4,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "Color",                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_background_color",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_background_color", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "color",                         lookup_key: Simple {                             key: "color",                             py_key: Py(                                 0x00007f80de226520,                             ),                             path: LookupPath(                                 [                                     S(                                         "color",                                         Py(                                             0x00007f80de226550,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3da40,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "a",                                                 lookup_key: Simple {                                                     key: "a",                                                     py_key: Py(                                                         0x00007f80f1a3e378,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "a",                                                                 Py(                                                                     0x00007f80f1a3e378,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a36f50,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "b",                                                 lookup_key: Simple {                                                     key: "b",                                                     py_key: Py(                                                         0x00007f80f1a3e3a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "b",                                                                 Py(                                                                     0x00007f80f1a3e3a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a37370,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "g",                                                 lookup_key: Simple {                                                     key: "g",                                                     py_key: Py(                                                         0x00007f80f1a3e498,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "g",                                                                 Py(                                                                     0x00007f80f1a3e498,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3e498,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "r",                                                 lookup_key: Simple {                                                     key: "r",                                                     py_key: Py(                                                         0x00007f80f1a3e6a8,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "r",                                                                 Py(                                                                     0x00007f80f1a3e6a8,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3b710,                                                 ),                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "Color",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c6208d0,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "Color",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de226580,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2265b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4ba230,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_background_color": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4ba230,                                                 ),                                             ],                                         },                                         expected_repr: "'set_background_color'",                                         name: "literal['set_background_color']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_background_color']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_background_color",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3028d0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_background_color",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, color: kittycad.models.color.Color, type: Literal['set_background_color'] = 'set_background_color') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

color: Color[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'color': FieldInfo(annotation=Color, required=True), 'type': FieldInfo(annotation=Literal['set_background_color'], required=False, default='set_background_color')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['set_background_color'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_current_tool_properties(**data)[source][source]

Set the properties of the tool lines for the scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'color': typing.Optional[kittycad.models.color.Color], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['set_current_tool_properties']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_current_tool_properties'>, 'config': {'title': 'set_current_tool_properties'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_current_tool_properties'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_current_tool_properties'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_current_tool_properties:93929008577312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_current_tool_properties', 'schema': {'expected': ['set_current_tool_properties'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_current_tool_properties', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d30bb20,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "color": SerField {                         key_py: Py(                             0x00007f80f0a3da40,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Model(                                                 ModelSerializer {                                                     class: Py(                                                         0x0000556d8c6208d0,                                                     ),                                                     serializer: Fields(                                                         GeneralFieldsSerializer {                                                             fields: {                                                                 "r": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3b710,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "g": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e498,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "b": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a37370,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "a": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a36f50,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                             },                                                             computed_fields: Some(                                                                 ComputedFields(                                                                     [],                                                                 ),                                                             ),                                                             mode: SimpleDict,                                                             extra_serializer: None,                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             required_fields: 4,                                                         },                                                     ),                                                     has_extra: false,                                                     root_model: false,                                                     name: "Color",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de442240,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_current_tool_properties",                                             },                                             expected_py: None,                                             name: "literal['set_current_tool_properties']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_current_tool_properties",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_current_tool_properties", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "color",                         lookup_key: Simple {                             key: "color",                             py_key: Py(                                 0x00007f80de227ed0,                             ),                             path: LookupPath(                                 [                                     S(                                         "color",                                         Py(                                             0x00007f80de227f00,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3da40,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Model(                                             ModelValidator {                                                 revalidate: Never,                                                 validator: ModelFields(                                                     ModelFieldsValidator {                                                         fields: [                                                             Field {                                                                 name: "a",                                                                 lookup_key: Simple {                                                                     key: "a",                                                                     py_key: Py(                                                                         0x00007f80f1a3e378,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "a",                                                                                 Py(                                                                                     0x00007f80f1a3e378,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a36f50,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "b",                                                                 lookup_key: Simple {                                                                     key: "b",                                                                     py_key: Py(                                                                         0x00007f80f1a3e3a8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "b",                                                                                 Py(                                                                                     0x00007f80f1a3e3a8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a37370,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "g",                                                                 lookup_key: Simple {                                                                     key: "g",                                                                     py_key: Py(                                                                         0x00007f80f1a3e498,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "g",                                                                                 Py(                                                                                     0x00007f80f1a3e498,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e498,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "r",                                                                 lookup_key: Simple {                                                                     key: "r",                                                                     py_key: Py(                                                                         0x00007f80f1a3e6a8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "r",                                                                                 Py(                                                                                     0x00007f80f1a3e6a8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3b710,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                         ],                                                         model_name: "Color",                                                         extra_behavior: Ignore,                                                         extras_validator: None,                                                         strict: false,                                                         from_attributes: false,                                                         loc_by_alias: true,                                                     },                                                 ),                                                 class: Py(                                                     0x0000556d8c6208d0,                                                 ),                                                 post_init: None,                                                 frozen: false,                                                 custom_init: false,                                                 root_model: false,                                                 undefined: Py(                                                     0x00007f80e0935e70,                                                 ),                                                 name: "Color",                                             },                                         ),                                         name: "nullable[Color]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[Color]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de227f30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de227f60,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de442240,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_current_tool_properties": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de442240,                                                 ),                                             ],                                         },                                         expected_repr: "'set_current_tool_properties'",                                         name: "literal['set_current_tool_properties']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_current_tool_properties']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_current_tool_properties",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d30bb20,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_current_tool_properties",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, color: Optional[kittycad.models.color.Color] = None, type: Literal['set_current_tool_properties'] = 'set_current_tool_properties') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

color: Optional[Color][source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'color': FieldInfo(annotation=Union[Color, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['set_current_tool_properties'], required=False, default='set_current_tool_properties')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['set_current_tool_properties'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_default_system_properties(**data)[source][source]

Set the default system properties used when a specific property isn’t set.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'color': typing.Optional[kittycad.models.color.Color], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['set_default_system_properties']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_default_system_properties'>, 'config': {'title': 'set_default_system_properties'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_default_system_properties'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_default_system_properties'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_default_system_properties:93929008600000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_default_system_properties', 'schema': {'expected': ['set_default_system_properties'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_default_system_properties', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3113c0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "color": SerField {                         key_py: Py(                             0x00007f80f0a3da40,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Model(                                                 ModelSerializer {                                                     class: Py(                                                         0x0000556d8c6208d0,                                                     ),                                                     serializer: Fields(                                                         GeneralFieldsSerializer {                                                             fields: {                                                                 "a": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a36f50,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "g": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e498,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "r": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3b710,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "b": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a37370,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                             },                                                             computed_fields: Some(                                                                 ComputedFields(                                                                     [],                                                                 ),                                                             ),                                                             mode: SimpleDict,                                                             extra_serializer: None,                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             required_fields: 4,                                                         },                                                     ),                                                     has_extra: false,                                                     root_model: false,                                                     name: "Color",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de442330,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_default_system_properties",                                             },                                             expected_py: None,                                             name: "literal['set_default_system_properties']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_default_system_properties",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_default_system_properties", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "color",                         lookup_key: Simple {                             key: "color",                             py_key: Py(                                 0x00007f80de239110,                             ),                             path: LookupPath(                                 [                                     S(                                         "color",                                         Py(                                             0x00007f80de239140,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3da40,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Model(                                             ModelValidator {                                                 revalidate: Never,                                                 validator: ModelFields(                                                     ModelFieldsValidator {                                                         fields: [                                                             Field {                                                                 name: "a",                                                                 lookup_key: Simple {                                                                     key: "a",                                                                     py_key: Py(                                                                         0x00007f80f1a3e378,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "a",                                                                                 Py(                                                                                     0x00007f80f1a3e378,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a36f50,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "b",                                                                 lookup_key: Simple {                                                                     key: "b",                                                                     py_key: Py(                                                                         0x00007f80f1a3e3a8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "b",                                                                                 Py(                                                                                     0x00007f80f1a3e3a8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a37370,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "g",                                                                 lookup_key: Simple {                                                                     key: "g",                                                                     py_key: Py(                                                                         0x00007f80f1a3e498,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "g",                                                                                 Py(                                                                                     0x00007f80f1a3e498,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e498,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "r",                                                                 lookup_key: Simple {                                                                     key: "r",                                                                     py_key: Py(                                                                         0x00007f80f1a3e6a8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "r",                                                                                 Py(                                                                                     0x00007f80f1a3e6a8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3b710,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                         ],                                                         model_name: "Color",                                                         extra_behavior: Ignore,                                                         extras_validator: None,                                                         strict: false,                                                         from_attributes: false,                                                         loc_by_alias: true,                                                     },                                                 ),                                                 class: Py(                                                     0x0000556d8c6208d0,                                                 ),                                                 post_init: None,                                                 frozen: false,                                                 custom_init: false,                                                 root_model: false,                                                 undefined: Py(                                                     0x00007f80e0935e70,                                                 ),                                                 name: "Color",                                             },                                         ),                                         name: "nullable[Color]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[Color]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de239170,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2391a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de442330,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_default_system_properties": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de442330,                                                 ),                                             ],                                         },                                         expected_repr: "'set_default_system_properties'",                                         name: "literal['set_default_system_properties']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_default_system_properties']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_default_system_properties",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3113c0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_default_system_properties",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, color: Optional[kittycad.models.color.Color] = None, type: Literal['set_default_system_properties'] = 'set_default_system_properties') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

color: Optional[Color][source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'color': FieldInfo(annotation=Union[Color, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['set_default_system_properties'], required=False, default='set_default_system_properties')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['set_default_system_properties'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_scene_units(**data)[source][source]

Set the units of the scene. For all following commands, the units will be interpreted as the given units.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['set_scene_units'], 'unit': <enum 'UnitLength'>}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_scene_units'>, 'config': {'title': 'set_scene_units'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_scene_units'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_scene_units'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_scene_units:93929008874896', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_scene_units', 'schema': {'expected': ['set_scene_units'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitLength'>, 'members': [UnitLength.CM, UnitLength.FT, UnitLength.IN, UnitLength.M, UnitLength.MM, UnitLength.YD], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_length.UnitLength:93929004525904', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}}, 'model_name': 'set_scene_units', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d354590,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4bbe30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_scene_units",                                             },                                             expected_py: None,                                             name: "literal['set_scene_units']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "unit": SerField {                         key_py: Py(                             0x00007f80f00c29a0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cf2e950,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_scene_units",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_scene_units", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de290030,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2923a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4bbe30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_scene_units": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4bbe30,                                                 ),                                             ],                                         },                                         expected_repr: "'set_scene_units'",                                         name: "literal['set_scene_units']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_scene_units']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "unit",                         lookup_key: Simple {                             key: "unit",                             py_key: Py(                                 0x00007f80de2923d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "unit",                                         Py(                                             0x00007f80de292400,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f00c29a0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cf2e950,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "ft": 1,                                             "cm": 0,                                             "in": 2,                                             "mm": 4,                                             "m": 3,                                             "yd": 5,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80dee79af0,                                         ),                                         Py(                                             0x00007f80dee7a030,                                         ),                                         Py(                                             0x00007f80dee7a090,                                         ),                                         Py(                                             0x00007f80dee79fd0,                                         ),                                         Py(                                             0x00007f80dee7a1b0,                                         ),                                         Py(                                             0x00007f80dee7a270,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'cm', 'ft', 'in', 'm', 'mm' or 'yd'",                                 strict: false,                                 class_repr: "UnitLength",                                 name: "str-enum[UnitLength]",                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_scene_units",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d354590,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_scene_units",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['set_scene_units'] = 'set_scene_units', unit: kittycad.models.unit_length.UnitLength) -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['set_scene_units'], required=False, default='set_scene_units'), 'unit': FieldInfo(annotation=UnitLength, required=True)}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['set_scene_units'][source]
unit: UnitLength[source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_selection_filter(**data)[source][source]

What kind of entities can be selected?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'filter': typing.List[kittycad.models.entity_type.EntityType], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['set_selection_filter']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_selection_filter'>, 'config': {'title': 'set_selection_filter'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_selection_filter'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_selection_filter'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_selection_filter:93929009048256', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'filter': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'cls': <enum 'EntityType'>, 'members': [EntityType.ENTITY, EntityType.OBJECT, EntityType.PATH, EntityType.CURVE, EntityType.SOLID2D, EntityType.SOLID3D, EntityType.EDGE, EntityType.FACE, EntityType.PLANE, EntityType.VERTEX], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.entity_type.EntityType:93929005647008', 'sub_type': 'str', 'type': 'enum'}, 'type': 'list'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_selection_filter', 'schema': {'expected': ['set_selection_filter'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_selection_filter', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d37eac0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "filter": SerField {                         key_py: Py(                             0x00007f80f0f9a400,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Enum(                                         EnumSerializer {                                             class: Py(                                                 0x0000556d8d0404a0,                                             ),                                             serializer: Some(                                                 Str(                                                     StrSerializer,                                                 ),                                             ),                                         },                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[enum]",                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4c0730,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_selection_filter",                                             },                                             expected_py: None,                                             name: "literal['set_selection_filter']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_selection_filter",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_selection_filter", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "filter",                         lookup_key: Simple {                             key: "filter",                             py_key: Py(                                 0x00007f80de2c47b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "filter",                                         Py(                                             0x00007f80de2c4810,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0f9a400,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     StrEnum(                                         EnumValidator {                                             phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                             class: Py(                                                 0x0000556d8d0404a0,                                             ),                                             lookup: LiteralLookup {                                                 expected_bool: None,                                                 expected_int: None,                                                 expected_str: Some(                                                     {                                                         "path": 2,                                                         "solid2d": 4,                                                         "face": 7,                                                         "object": 1,                                                         "entity": 0,                                                         "curve": 3,                                                         "vertex": 9,                                                         "edge": 6,                                                         "solid3d": 5,                                                         "plane": 8,                                                     },                                                 ),                                                 expected_py_dict: None,                                                 expected_py_values: None,                                                 values: [                                                     Py(                                                         0x00007f80de677e90,                                                     ),                                                     Py(                                                         0x00007f80de677fb0,                                                     ),                                                     Py(                                                         0x00007f80de677f50,                                                     ),                                                     Py(                                                         0x00007f80de52c050,                                                     ),                                                     Py(                                                         0x00007f80de52c0b0,                                                     ),                                                     Py(                                                         0x00007f80de52c110,                                                     ),                                                     Py(                                                         0x00007f80de52c170,                                                     ),                                                     Py(                                                         0x00007f80de52c1d0,                                                     ),                                                     Py(                                                         0x00007f80de52c230,                                                     ),                                                     Py(                                                         0x00007f80de52c290,                                                     ),                                                 ],                                             },                                             missing: None,                                             expected_repr: "'entity', 'object', 'path', 'curve', 'solid2d', 'solid3d', 'edge', 'face', 'plane' or 'vertex'",                                             strict: false,                                             class_repr: "EntityType",                                             name: "str-enum[EntityType]",                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2c47e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2c4930,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4c0730,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_selection_filter": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4c0730,                                                 ),                                             ],                                         },                                         expected_repr: "'set_selection_filter'",                                         name: "literal['set_selection_filter']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_selection_filter']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_selection_filter",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d37eac0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_selection_filter",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, filter: List[kittycad.models.entity_type.EntityType], type: Literal['set_selection_filter'] = 'set_selection_filter') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

filter: List[EntityType][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'filter': FieldInfo(annotation=List[EntityType], required=True), 'type': FieldInfo(annotation=Literal['set_selection_filter'], required=False, default='set_selection_filter')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['set_selection_filter'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_selection_type(**data)[source][source]

When you select some entity with the current tool, what should happen to the entity?

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'selection_type': <enum 'SceneSelectionType'>, 'type': typing.Literal['set_selection_type']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_selection_type'>, 'config': {'title': 'set_selection_type'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_selection_type'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_selection_type'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_selection_type:93929009033456', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'selection_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'SceneSelectionType'>, 'members': [SceneSelectionType.REPLACE, SceneSelectionType.ADD, SceneSelectionType.REMOVE], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.scene_selection_type.SceneSelectionType:93929007187568', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_selection_type', 'schema': {'expected': ['set_selection_type'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_selection_type', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d37b0f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4c0530,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_selection_type",                                             },                                             expected_py: None,                                             name: "literal['set_selection_type']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "selection_type": SerField {                         key_py: Py(                             0x00007f80de492730,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d1b8670,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_selection_type",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_selection_type", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "selection_type",                         lookup_key: Simple {                             key: "selection_type",                             py_key: Py(                                 0x00007f80de2cc430,                             ),                             path: LookupPath(                                 [                                     S(                                         "selection_type",                                         Py(                                             0x00007f80de2cc2f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de492730,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d1b8670,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "replace": 0,                                             "remove": 2,                                             "add": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de46f410,                                         ),                                         Py(                                             0x00007f80de46f530,                                         ),                                         Py(                                             0x00007f80de46f4d0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'replace', 'add' or 'remove'",                                 strict: false,                                 class_repr: "SceneSelectionType",                                 name: "str-enum[SceneSelectionType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2c6a30,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2c6a90,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4c0530,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_selection_type": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4c0530,                                                 ),                                             ],                                         },                                         expected_repr: "'set_selection_type'",                                         name: "literal['set_selection_type']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_selection_type']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_selection_type",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d37b0f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_selection_type",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, selection_type: kittycad.models.scene_selection_type.SceneSelectionType, type: Literal['set_selection_type'] = 'set_selection_type') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'selection_type': FieldInfo(annotation=SceneSelectionType, required=True), 'type': FieldInfo(annotation=Literal['set_selection_type'], required=False, default='set_selection_type')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

selection_type: SceneSelectionType[source]
type: Literal['set_selection_type'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.set_tool(**data)[source][source]

Set the current tool.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'tool': <enum 'SceneToolType'>, 'type': typing.Literal['set_tool']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.set_tool'>, 'config': {'title': 'set_tool'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.set_tool'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.set_tool'>>]}, 'ref': 'kittycad.models.modeling_cmd.set_tool:93929008360496', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'tool': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'SceneToolType'>, 'members': [SceneToolType.CAMERA_REVOLVE, SceneToolType.SELECT, SceneToolType.MOVE, SceneToolType.SKETCH_LINE, SceneToolType.SKETCH_TANGENTIAL_ARC, SceneToolType.SKETCH_CURVE, SceneToolType.SKETCH_CURVE_MOD], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.scene_tool_type.SceneToolType:93929007191728', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'set_tool', 'schema': {'expected': ['set_tool'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'set_tool', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2d6c30,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b95f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "set_tool",                                             },                                             expected_py: None,                                             name: "literal['set_tool']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "tool": SerField {                         key_py: Py(                             0x00007f80e2534b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d1b96b0,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "set_tool",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="set_tool", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "tool",                         lookup_key: Simple {                             key: "tool",                             py_key: Py(                                 0x00007f80de3e8450,                             ),                             path: LookupPath(                                 [                                     S(                                         "tool",                                         Py(                                             0x00007f80de3e8480,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e2534b70,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d1b96b0,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "camera_revolve": 0,                                             "sketch_curve_mod": 6,                                             "sketch_line": 3,                                             "sketch_tangential_arc": 4,                                             "move": 2,                                             "sketch_curve": 5,                                             "select": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de46f710,                                         ),                                         Py(                                             0x00007f80de46f650,                                         ),                                         Py(                                             0x00007f80de46f770,                                         ),                                         Py(                                             0x00007f80de46f7d0,                                         ),                                         Py(                                             0x00007f80de46f830,                                         ),                                         Py(                                             0x00007f80de46f890,                                         ),                                         Py(                                             0x00007f80de46f8f0,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'camera_revolve', 'select', 'move', 'sketch_line', 'sketch_tangential_arc', 'sketch_curve' or 'sketch_curve_mod'",                                 strict: false,                                 class_repr: "SceneToolType",                                 name: "str-enum[SceneToolType]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3e84e0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3e8510,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b95f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "set_tool": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b95f0,                                                 ),                                             ],                                         },                                         expected_repr: "'set_tool'",                                         name: "literal['set_tool']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['set_tool']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "set_tool",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2d6c30,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "set_tool",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, tool: kittycad.models.scene_tool_type.SceneToolType, type: Literal['set_tool'] = 'set_tool') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'tool': FieldInfo(annotation=SceneToolType, required=True), 'type': FieldInfo(annotation=Literal['set_tool'], required=False, default='set_tool')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

tool: SceneToolType[source]
type: Literal['set_tool'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.sketch_mode_disable(**data)[source][source]

Disable sketch mode. If you are sketching on a face, be sure to not disable sketch mode until you have extruded. Otherwise, your object will not be fused with the face.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['sketch_mode_disable']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.sketch_mode_disable'>, 'config': {'title': 'sketch_mode_disable'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.sketch_mode_disable'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.sketch_mode_disable'>>]}, 'ref': 'kittycad.models.modeling_cmd.sketch_mode_disable:93929008483456', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'sketch_mode_disable', 'schema': {'expected': ['sketch_mode_disable'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'sketch_mode_disable', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2f4c80,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b99b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "sketch_mode_disable",                                             },                                             expected_py: None,                                             name: "literal['sketch_mode_disable']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "sketch_mode_disable",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="sketch_mode_disable", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de200bd0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de200c00,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b99b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "sketch_mode_disable": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b99b0,                                                 ),                                             ],                                         },                                         expected_repr: "'sketch_mode_disable'",                                         name: "literal['sketch_mode_disable']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['sketch_mode_disable']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "sketch_mode_disable",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2f4c80,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "sketch_mode_disable",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['sketch_mode_disable'] = 'sketch_mode_disable') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['sketch_mode_disable'], required=False, default='sketch_mode_disable')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['sketch_mode_disable'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid2d_add_hole(**data)[source][source]

Add a hole to a Solid2d object before extruding it.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'hole_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid2d_add_hole']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid2d_add_hole'>, 'config': {'title': 'solid2d_add_hole'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid2d_add_hole'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid2d_add_hole'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid2d_add_hole:93929008135088', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'hole_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid2d_add_hole', 'schema': {'expected': ['solid2d_add_hole'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid2d_add_hole', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d29fbb0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b8230,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid2d_add_hole",                                             },                                             expected_py: None,                                             name: "literal['solid2d_add_hole']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "hole_id": SerField {                         key_py: Py(                             0x00007f80de4961c0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "solid2d_add_hole",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid2d_add_hole", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "hole_id",                         lookup_key: Simple {                             key: "hole_id",                             py_key: Py(                                 0x00007f80de390d80,                             ),                             path: LookupPath(                                 [                                     S(                                         "hole_id",                                         Py(                                             0x00007f80de390db0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4961c0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3870f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3870b0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de390de0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de390e10,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b8230,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid2d_add_hole": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b8230,                                                 ),                                             ],                                         },                                         expected_repr: "'solid2d_add_hole'",                                         name: "literal['solid2d_add_hole']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid2d_add_hole']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid2d_add_hole",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d29fbb0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid2d_add_hole",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, hole_id: str, object_id: str, type: Literal['solid2d_add_hole'] = 'solid2d_add_hole') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

hole_id: str[source]
json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'hole_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid2d_add_hole'], required=False, default='solid2d_add_hole')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid2d_add_hole'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_fillet_edge(**data)[source][source]

Fillets the given edge with the specified radius.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'cut_type': typing.Optional[kittycad.models.cut_type.CutType], 'edge_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'radius': <class 'kittycad.models.length_unit.LengthUnit'>, 'tolerance': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['solid3d_fillet_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_fillet_edge'>, 'config': {'title': 'solid3d_fillet_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_fillet_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_fillet_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_fillet_edge:93929008207744', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cut_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <enum 'CutType'>, 'members': [CutType.FILLET, CutType.CHAMFER], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.cut_type.CutType:93929005411568', 'sub_type': 'str', 'type': 'enum'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'radius': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tolerance': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_fillet_edge', 'schema': {'expected': ['solid3d_fillet_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_fillet_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2b1780,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4b86b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_fillet_edge",                                             },                                             expected_py: None,                                             name: "literal['solid3d_fillet_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "tolerance": SerField {                         key_py: Py(                             0x00007f80e1328330,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "radius": SerField {                         key_py: Py(                             0x00007f80e14e1d70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "cut_type": SerField {                         key_py: Py(                             0x00007f80df355e30,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Enum(                                                 EnumSerializer {                                                     class: Py(                                                         0x0000556d8d006cf0,                                                     ),                                                     serializer: Some(                                                         Str(                                                             StrSerializer,                                                         ),                                                     ),                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 6,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_fillet_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_fillet_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "cut_type",                         lookup_key: Simple {                             key: "cut_type",                             py_key: Py(                                 0x00007f80de32b030,                             ),                             path: LookupPath(                                 [                                     S(                                         "cut_type",                                         Py(                                             0x00007f80de430b30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80df355e30,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: StrEnum(                                             EnumValidator {                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                 class: Py(                                                     0x0000556d8d006cf0,                                                 ),                                                 lookup: LiteralLookup {                                                     expected_bool: None,                                                     expected_int: None,                                                     expected_str: Some(                                                         {                                                             "chamfer": 1,                                                             "fillet": 0,                                                         },                                                     ),                                                     expected_py_dict: None,                                                     expected_py_values: None,                                                     values: [                                                         Py(                                                             0x00007f80de6758b0,                                                         ),                                                         Py(                                                             0x00007f80de675970,                                                         ),                                                     ],                                                 },                                                 missing: None,                                                 expected_repr: "'fillet' or 'chamfer'",                                                 strict: false,                                                 class_repr: "CutType",                                                 name: "str-enum[CutType]",                                             },                                         ),                                         name: "nullable[str-enum[CutType]]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str-enum[CutType]]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de3a2d90,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de3a2ee0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de431130,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de3aaff0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "radius",                         lookup_key: Simple {                             key: "radius",                             py_key: Py(                                 0x00007f80de3a2f40,                             ),                             path: LookupPath(                                 [                                     S(                                         "radius",                                         Py(                                             0x00007f80de3a2fa0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e14e1d70,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de3aafc0,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "tolerance",                         lookup_key: Simple {                             key: "tolerance",                             py_key: Py(                                 0x00007f80de3ab070,                             ),                             path: LookupPath(                                 [                                     S(                                         "tolerance",                                         Py(                                             0x00007f80de3ab030,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e1328330,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de3aafc0,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3a2dc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3a2e80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4b86b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_fillet_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4b86b0,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_fillet_edge'",                                         name: "literal['solid3d_fillet_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_fillet_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_fillet_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2b1780,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_fillet_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, cut_type: Optional[kittycad.models.cut_type.CutType] = None, edge_id: str, object_id: str, radius: kittycad.models.length_unit.LengthUnit, tolerance: kittycad.models.length_unit.LengthUnit, type: Literal['solid3d_fillet_edge'] = 'solid3d_fillet_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

cut_type: Optional[CutType][source]
dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'cut_type': FieldInfo(annotation=Union[CutType, NoneType], required=False, default=None), 'edge_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'radius': FieldInfo(annotation=LengthUnit, required=True), 'tolerance': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['solid3d_fillet_edge'], required=False, default='solid3d_fillet_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

radius: LengthUnit[source]
classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

tolerance: LengthUnit[source]
type: Literal['solid3d_fillet_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_all_edge_faces(**data)[source][source]

Gets all faces which use the given edge.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_all_edge_faces']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_all_edge_faces'>, 'config': {'title': 'solid3d_get_all_edge_faces'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_all_edge_faces'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_all_edge_faces'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_all_edge_faces:93929008133312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_all_edge_faces', 'schema': {'expected': ['solid3d_get_all_edge_faces'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_all_edge_faces', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d29f4c0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163a00,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_all_edge_faces",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_all_edge_faces']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_all_edge_faces",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_all_edge_faces", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de37f720,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de37f7e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de385f30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de385ef0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37f810,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37f840,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163a00,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_all_edge_faces": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163a00,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_all_edge_faces'",                                         name: "literal['solid3d_get_all_edge_faces']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_all_edge_faces']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_all_edge_faces",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d29f4c0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_all_edge_faces",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, object_id: str, type: Literal['solid3d_get_all_edge_faces'] = 'solid3d_get_all_edge_faces') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_all_edge_faces'], required=False, default='solid3d_get_all_edge_faces')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_all_edge_faces'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_all_opposite_edges(**data)[source][source]

Gets all edges which are opposite the given edge, across all possible faces.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'along_vector': typing.Optional[kittycad.models.point3d.Point3d], 'edge_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_all_opposite_edges']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_all_opposite_edges'>, 'config': {'title': 'solid3d_get_all_opposite_edges'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_all_opposite_edges'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_all_opposite_edges'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_all_opposite_edges:93929008146752', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'along_vector': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_all_opposite_edges', 'schema': {'expected': ['solid3d_get_all_opposite_edges'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_all_opposite_edges', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2a2940,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163a50,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_all_opposite_edges",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_all_opposite_edges']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "along_vector": SerField {                         key_py: Py(                             0x00007f80de4b83f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Model(                                                 ModelSerializer {                                                     class: Py(                                                         0x0000556d8c616f80,                                                     ),                                                     serializer: Fields(                                                         GeneralFieldsSerializer {                                                             fields: {                                                                 "z": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e828,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "y": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3e7f8,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                                 "x": SerField {                                                                     key_py: Py(                                                                         0x00007f80f1a3d0b8,                                                                     ),                                                                     alias: None,                                                                     alias_py: None,                                                                     serializer: Some(                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ),                                                                     required: true,                                                                 },                                                             },                                                             computed_fields: Some(                                                                 ComputedFields(                                                                     [],                                                                 ),                                                             ),                                                             mode: SimpleDict,                                                             extra_serializer: None,                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             required_fields: 3,                                                         },                                                     ),                                                     has_extra: false,                                                     root_model: false,                                                     name: "Point3d",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_all_opposite_edges",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_all_opposite_edges", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "along_vector",                         lookup_key: Simple {                             key: "along_vector",                             py_key: Py(                                 0x00007f80de398430,                             ),                             path: LookupPath(                                 [                                     S(                                         "along_vector",                                         Py(                                             0x00007f80de3983f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4b83f0,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Model(                                             ModelValidator {                                                 revalidate: Never,                                                 validator: ModelFields(                                                     ModelFieldsValidator {                                                         fields: [                                                             Field {                                                                 name: "x",                                                                 lookup_key: Simple {                                                                     key: "x",                                                                     py_key: Py(                                                                         0x00007f80f1a3e7c8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "x",                                                                                 Py(                                                                                     0x00007f80f1a3e7c8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3d0b8,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "y",                                                                 lookup_key: Simple {                                                                     key: "y",                                                                     py_key: Py(                                                                         0x00007f80f1a3e7f8,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "y",                                                                                 Py(                                                                                     0x00007f80f1a3e7f8,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e7f8,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                             Field {                                                                 name: "z",                                                                 lookup_key: Simple {                                                                     key: "z",                                                                     py_key: Py(                                                                         0x00007f80f1a3e828,                                                                     ),                                                                     path: LookupPath(                                                                         [                                                                             S(                                                                                 "z",                                                                                 Py(                                                                                     0x00007f80f1a3e828,                                                                                 ),                                                                             ),                                                                         ],                                                                     ),                                                                 },                                                                 name_py: Py(                                                                     0x00007f80f1a3e828,                                                                 ),                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 frozen: false,                                                             },                                                         ],                                                         model_name: "Point3d",                                                         extra_behavior: Ignore,                                                         extras_validator: None,                                                         strict: false,                                                         from_attributes: false,                                                         loc_by_alias: true,                                                     },                                                 ),                                                 class: Py(                                                     0x0000556d8c616f80,                                                 ),                                                 post_init: None,                                                 frozen: false,                                                 custom_init: false,                                                 root_model: false,                                                 undefined: Py(                                                     0x00007f80e0935e70,                                                 ),                                                 name: "Point3d",                                             },                                         ),                                         name: "nullable[Point3d]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[Point3d]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de37dfe0,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de37df80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3984b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de398470,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37df50,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37dfb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163a50,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_all_opposite_edges": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163a50,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_all_opposite_edges'",                                         name: "literal['solid3d_get_all_opposite_edges']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_all_opposite_edges']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_all_opposite_edges",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2a2940,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_all_opposite_edges",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, along_vector: Optional[kittycad.models.point3d.Point3d] = None, edge_id: str, object_id: str, type: Literal['solid3d_get_all_opposite_edges'] = 'solid3d_get_all_opposite_edges') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

along_vector: Optional[Point3d][source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'along_vector': FieldInfo(annotation=Union[Point3d, NoneType], required=False, default=None), 'edge_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_all_opposite_edges'], required=False, default='solid3d_get_all_opposite_edges')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_all_opposite_edges'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_extrusion_face_info(**data)[source][source]

Get a concise description of all of an extrusion’s faces.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_extrusion_face_info']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_extrusion_face_info'>, 'config': {'title': 'solid3d_get_extrusion_face_info'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_extrusion_face_info'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_extrusion_face_info'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_extrusion_face_info:93929009121360', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_extrusion_face_info', 'schema': {'expected': ['solid3d_get_extrusion_face_info'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_extrusion_face_info', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'view_isometric': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d390850,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163af0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_extrusion_face_info",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_extrusion_face_info']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_extrusion_face_info",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_extrusion_face_info", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de2e99b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de2e99e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de2e1a30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de2e19f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2e9a10,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2e9a40,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163af0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_extrusion_face_info": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163af0,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_extrusion_face_info'",                                         name: "literal['solid3d_get_extrusion_face_info']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_extrusion_face_info']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_extrusion_face_info",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d390850,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_extrusion_face_info",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, object_id: str, type: Literal['solid3d_get_extrusion_face_info'] = 'solid3d_get_extrusion_face_info') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_extrusion_face_info'], required=False, default='solid3d_get_extrusion_face_info')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_extrusion_face_info'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_next_adjacent_edge(**data)[source][source]

Gets the next adjacent edge for the given edge, along the given face.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'face_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_next_adjacent_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_next_adjacent_edge'>, 'config': {'title': 'solid3d_get_next_adjacent_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_next_adjacent_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_next_adjacent_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_next_adjacent_edge:93929008172080', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'face_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_next_adjacent_edge', 'schema': {'expected': ['solid3d_get_next_adjacent_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_next_adjacent_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2a8c30,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163b90,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_next_adjacent_edge",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_next_adjacent_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "face_id": SerField {                         key_py: Py(                             0x00007f80de79a550,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_next_adjacent_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_next_adjacent_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de3a0990,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de3a09c0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "face_id",                         lookup_key: Simple {                             key: "face_id",                             py_key: Py(                                 0x00007f80de3a09f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "face_id",                                         Py(                                             0x00007f80de3a0a20,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de79a550,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de39ad70,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de39ad30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de3a0a50,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de3a0a80,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163b90,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_next_adjacent_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163b90,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_next_adjacent_edge'",                                         name: "literal['solid3d_get_next_adjacent_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_next_adjacent_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_next_adjacent_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2a8c30,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_next_adjacent_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, face_id: str, object_id: str, type: Literal['solid3d_get_next_adjacent_edge'] = 'solid3d_get_next_adjacent_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
face_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'face_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_next_adjacent_edge'], required=False, default='solid3d_get_next_adjacent_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_next_adjacent_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_opposite_edge(**data)[source][source]

Gets the edge opposite the given edge, along the given face.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'face_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_opposite_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_opposite_edge'>, 'config': {'title': 'solid3d_get_opposite_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_opposite_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_opposite_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_opposite_edge:93929008159424', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'face_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_opposite_edge', 'schema': {'expected': ['solid3d_get_opposite_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_opposite_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2a5ac0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "face_id": SerField {                         key_py: Py(                             0x00007f80de79a550,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163c30,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_opposite_edge",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_opposite_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_opposite_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_opposite_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de393240,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de393270,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "face_id",                         lookup_key: Simple {                             key: "face_id",                             py_key: Py(                                 0x00007f80de3932a0,                             ),                             path: LookupPath(                                 [                                     S(                                         "face_id",                                         Py(                                             0x00007f80de3932d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de79a550,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de3997b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de399770,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de393300,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de393330,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163c30,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_opposite_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163c30,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_opposite_edge'",                                         name: "literal['solid3d_get_opposite_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_opposite_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_opposite_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2a5ac0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_opposite_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, face_id: str, object_id: str, type: Literal['solid3d_get_opposite_edge'] = 'solid3d_get_opposite_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
face_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'face_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_opposite_edge'], required=False, default='solid3d_get_opposite_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_opposite_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_get_prev_adjacent_edge(**data)[source][source]

Gets the previous adjacent edge for the given edge, along the given face.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'edge_id': <class 'str'>, 'face_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'type': typing.Literal['solid3d_get_prev_adjacent_edge']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_get_prev_adjacent_edge'>, 'config': {'title': 'solid3d_get_prev_adjacent_edge'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_get_prev_adjacent_edge'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_get_prev_adjacent_edge'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_get_prev_adjacent_edge:93929008193168', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'edge_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'face_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_get_prev_adjacent_edge', 'schema': {'expected': ['solid3d_get_prev_adjacent_edge'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_get_prev_adjacent_edge', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d2ade90,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df163c80,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_get_prev_adjacent_edge",                                             },                                             expected_py: None,                                             name: "literal['solid3d_get_prev_adjacent_edge']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "edge_id": SerField {                         key_py: Py(                             0x00007f80de475050,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "face_id": SerField {                         key_py: Py(                             0x00007f80de79a550,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_get_prev_adjacent_edge",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_get_prev_adjacent_edge", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "edge_id",                         lookup_key: Simple {                             key: "edge_id",                             py_key: Py(                                 0x00007f80de37e0d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "edge_id",                                         Py(                                             0x00007f80de37f4e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de475050,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "face_id",                         lookup_key: Simple {                             key: "face_id",                             py_key: Py(                                 0x00007f80de37f6c0,                             ),                             path: LookupPath(                                 [                                     S(                                         "face_id",                                         Py(                                             0x00007f80de37f5d0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de79a550,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de39b870,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de39b830,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de37f540,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de37f5a0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df163c80,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_get_prev_adjacent_edge": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df163c80,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_get_prev_adjacent_edge'",                                         name: "literal['solid3d_get_prev_adjacent_edge']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_get_prev_adjacent_edge']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_get_prev_adjacent_edge",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d2ade90,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_get_prev_adjacent_edge",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, edge_id: str, face_id: str, object_id: str, type: Literal['solid3d_get_prev_adjacent_edge'] = 'solid3d_get_prev_adjacent_edge') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

edge_id: str[source]
face_id: str[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'edge_id': FieldInfo(annotation=str, required=True), 'face_id': FieldInfo(annotation=str, required=True), 'object_id': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=Literal['solid3d_get_prev_adjacent_edge'], required=False, default='solid3d_get_prev_adjacent_edge')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['solid3d_get_prev_adjacent_edge'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.solid3d_shell_face(**data)[source][source]

Command for revolving a solid 2d.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'face_ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_id': <class 'str'>, 'shell_thickness': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': typing.Literal['solid3d_shell_face']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.solid3d_shell_face'>, 'config': {'title': 'solid3d_shell_face'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.solid3d_shell_face'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.solid3d_shell_face'>>]}, 'ref': 'kittycad.models.modeling_cmd.solid3d_shell_face:93929007345792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'face_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'object_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'shell_thickness': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'function': {'function': <class 'kittycad.models.length_unit.LengthUnit'>, 'type': 'no-info'}, 'schema': {'type': 'float'}, 'type': 'function-after'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'solid3d_shell_face', 'schema': {'expected': ['solid3d_shell_face'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'solid3d_shell_face', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1df080,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "face_ids": SerField {                         key_py: Py(                             0x00007f80de4780b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "shell_thickness": SerField {                         key_py: Py(                             0x00007f80de4780f0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de478070,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "solid3d_shell_face",                                             },                                             expected_py: None,                                             name: "literal['solid3d_shell_face']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_id": SerField {                         key_py: Py(                             0x00007f80e28c7b70,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 4,             },         ),         has_extra: false,         root_model: false,         name: "solid3d_shell_face",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="solid3d_shell_face", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "face_ids",                         lookup_key: Simple {                             key: "face_ids",                             py_key: Py(                                 0x00007f80de466fb0,                             ),                             path: LookupPath(                                 [                                     S(                                         "face_ids",                                         Py(                                             0x00007f80de4672f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4780b0,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "object_id",                         lookup_key: Simple {                             key: "object_id",                             py_key: Py(                                 0x00007f80de466ef0,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_id",                                         Py(                                             0x00007f80de4671f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80e28c7b70,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "shell_thickness",                         lookup_key: Simple {                             key: "shell_thickness",                             py_key: Py(                                 0x00007f80de467130,                             ),                             path: LookupPath(                                 [                                     S(                                         "shell_thickness",                                         Py(                                             0x00007f80de467d70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4780f0,                         ),                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Float(                                     FloatValidator {                                         strict: false,                                         allow_inf_nan: true,                                     },                                 ),                                 func: Py(                                     0x0000556d8cfac870,                                 ),                                 config: Py(                                     0x00007f80de4674c0,                                 ),                                 name: "function-after[LengthUnit(), float]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de4953b0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de495170,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de478070,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "solid3d_shell_face": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de478070,                                                 ),                                             ],                                         },                                         expected_repr: "'solid3d_shell_face'",                                         name: "literal['solid3d_shell_face']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['solid3d_shell_face']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "solid3d_shell_face",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1df080,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "solid3d_shell_face",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, face_ids: List[str], object_id: str, shell_thickness: kittycad.models.length_unit.LengthUnit, type: Literal['solid3d_shell_face'] = 'solid3d_shell_face') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

face_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'face_ids': FieldInfo(annotation=List[str], required=True), 'object_id': FieldInfo(annotation=str, required=True), 'shell_thickness': FieldInfo(annotation=LengthUnit, required=True), 'type': FieldInfo(annotation=Literal['solid3d_shell_face'], required=False, default='solid3d_shell_face')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_id: str[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

shell_thickness: LengthUnit[source]
type: Literal['solid3d_shell_face'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.start_path(**data)[source][source]

Start a new path.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['start_path']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.start_path'>, 'config': {'title': 'start_path'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.start_path'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.start_path'>>]}, 'ref': 'kittycad.models.modeling_cmd.start_path:93929007195824', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'start_path', 'schema': {'expected': ['start_path'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'start_path', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d1ba6b0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de473bf0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "start_path",                                             },                                             expected_py: None,                                             name: "literal['start_path']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 1,             },         ),         has_extra: false,         root_model: false,         name: "start_path",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="start_path", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de476dc0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de476df0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de473bf0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "start_path": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de473bf0,                                                 ),                                             ],                                         },                                         expected_repr: "'start_path'",                                         name: "literal['start_path']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['start_path']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "start_path",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d1ba6b0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "start_path",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, type: Literal['start_path'] = 'start_path') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'type': FieldInfo(annotation=Literal['start_path'], required=False, default='start_path')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['start_path'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.surface_area(**data)[source][source]

Get the surface area of entities in the scene or the default scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'output_unit': <enum 'UnitArea'>, 'type': typing.Literal['surface_area']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.surface_area'>, 'config': {'title': 'surface_area'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.surface_area'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.surface_area'>>]}, 'ref': 'kittycad.models.modeling_cmd.surface_area:93929009003328', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'output_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitArea'>, 'members': [UnitArea.CM2, UnitArea.DM2, UnitArea.FT2, UnitArea.IN2, UnitArea.KM2, UnitArea.M2, UnitArea.MM2, UnitArea.YD2], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_area.UnitArea:93929000502784', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'surface_area', 'schema': {'expected': ['surface_area'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'surface_area', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d373b40,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19f830,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "surface_area",                                             },                                             expected_py: None,                                             name: "literal['surface_area']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "output_unit": SerField {                         key_py: Py(                             0x00007f80dedc5eb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb58600,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "surface_area",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="surface_area", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de2b2ef0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de2b2eb0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "output_unit",                         lookup_key: Simple {                             key: "output_unit",                             py_key: Py(                                 0x00007f80de2b2f70,                             ),                             path: LookupPath(                                 [                                     S(                                         "output_unit",                                         Py(                                             0x00007f80de2b2f30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5eb0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb58600,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "m2": 5,                                             "km2": 4,                                             "ft2": 2,                                             "cm2": 0,                                             "dm2": 1,                                             "mm2": 6,                                             "in2": 3,                                             "yd2": 7,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79c470,                                         ),                                         Py(                                             0x00007f80de79c4d0,                                         ),                                         Py(                                             0x00007f80de79c530,                                         ),                                         Py(                                             0x00007f80de79c590,                                         ),                                         Py(                                             0x00007f80de79c5f0,                                         ),                                         Py(                                             0x00007f80de79c650,                                         ),                                         Py(                                             0x00007f80de79c6b0,                                         ),                                         Py(                                             0x00007f80de79c710,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'cm2', 'dm2', 'ft2', 'in2', 'km2', 'm2', 'mm2' or 'yd2'",                                 strict: false,                                 class_repr: "UnitArea",                                 name: "str-enum[UnitArea]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2a35d0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2a36f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19f830,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "surface_area": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19f830,                                                 ),                                             ],                                         },                                         expected_repr: "'surface_area'",                                         name: "literal['surface_area']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['surface_area']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "surface_area",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d373b40,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "surface_area",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], output_unit: kittycad.models.unit_area.UnitArea, type: Literal['surface_area'] = 'surface_area') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'output_unit': FieldInfo(annotation=UnitArea, required=True), 'type': FieldInfo(annotation=Literal['surface_area'], required=False, default='surface_area')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

output_unit: UnitArea[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['surface_area'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.take_snapshot(**data)[source][source]

Take a snapshot of the current view.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'format': <enum 'ImageFormat'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'type': typing.Literal['take_snapshot']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.take_snapshot'>, 'config': {'title': 'take_snapshot'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.take_snapshot'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.take_snapshot'>>]}, 'ref': 'kittycad.models.modeling_cmd.take_snapshot:93929008658928', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'format': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'ImageFormat'>, 'members': [ImageFormat.PNG, ImageFormat.JPEG], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.image_format.ImageFormat:93929006415424', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'take_snapshot', 'schema': {'expected': ['take_snapshot'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'take_snapshot', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d31f9f0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19f7b0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "take_snapshot",                                             },                                             expected_py: None,                                             name: "literal['take_snapshot']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "format": SerField {                         key_py: Py(                             0x00007f80f1a390e8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8d0fbe40,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "take_snapshot",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="take_snapshot", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "format",                         lookup_key: Simple {                             key: "format",                             py_key: Py(                                 0x00007f80de239050,                             ),                             path: LookupPath(                                 [                                     S(                                         "format",                                         Py(                                             0x00007f80de238e70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a390e8,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8d0fbe40,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "png": 0,                                             "jpeg": 1,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de52ec30,                                         ),                                         Py(                                             0x00007f80de52ec90,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'png' or 'jpeg'",                                 strict: false,                                 class_repr: "ImageFormat",                                 name: "str-enum[ImageFormat]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de238e10,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de238ea0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19f7b0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "take_snapshot": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19f7b0,                                                 ),                                             ],                                         },                                         expected_repr: "'take_snapshot'",                                         name: "literal['take_snapshot']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['take_snapshot']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "take_snapshot",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d31f9f0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "take_snapshot",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, format: kittycad.models.image_format.ImageFormat, type: Literal['take_snapshot'] = 'take_snapshot') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

format: ImageFormat[source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'format': FieldInfo(annotation=ImageFormat, required=True), 'type': FieldInfo(annotation=Literal['take_snapshot'], required=False, default='take_snapshot')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['take_snapshot'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.update_annotation(**data)[source][source]

Update an annotation

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'annotation_id': <class 'str'>, 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'options': <class 'kittycad.models.annotation_options.AnnotationOptions'>, 'type': typing.Literal['update_annotation']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <enum 'AnnotationLineEnd'>, 'members': [AnnotationLineEnd.NONE, AnnotationLineEnd.ARROW], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'sub_type': 'str', 'type': 'enum'}], 'schema': {'cls': <class 'kittycad.models.modeling_cmd.update_annotation'>, 'config': {'title': 'update_annotation'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.update_annotation'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.update_annotation'>>]}, 'ref': 'kittycad.models.modeling_cmd.update_annotation:93929007961856', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'annotation_id': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'kittycad.models.annotation_options.AnnotationOptions'>, 'config': {'title': 'AnnotationOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_options.AnnotationOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_options.AnnotationOptions'>>]}, 'ref': 'kittycad.models.annotation_options.AnnotationOptions:93928994997008', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'color': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.color.Color'>, 'config': {'title': 'Color'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.color.Color'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.color.Color'>>]}, 'ref': 'kittycad.models.color.Color:93928995031248', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'a': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'b': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'g': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'r': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Color', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'line_ends': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>, 'config': {'title': 'AnnotationLineEndOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions'>>]}, 'ref': 'kittycad.models.annotation_line_end_options.AnnotationLineEndOptions:93928997090928', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'end': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'type': 'definition-ref'}, 'type': 'model-field'}, 'start': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.annotation_line_end.AnnotationLineEnd:93928997089152', 'type': 'definition-ref'}, 'type': 'model-field'}}, 'model_name': 'AnnotationLineEndOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'line_width': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'position': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.point3d.Point3d'>, 'config': {'title': 'Point3d'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.point3d.Point3d'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.point3d.Point3d'>>]}, 'ref': 'kittycad.models.point3d.Point3d:93928994992000', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'z': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}}, 'model_name': 'Point3d', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'text': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'cls': <class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>, 'config': {'title': 'AnnotationTextOptions'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.annotation_text_options.AnnotationTextOptions'>>]}, 'ref': 'kittycad.models.annotation_text_options.AnnotationTextOptions:93928997074832', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'point_size': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'int'}, 'type': 'model-field'}, 'text': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'x': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'AnnotationTextAlignmentX'>, 'members': [AnnotationTextAlignmentX.LEFT, AnnotationTextAlignmentX.CENTER, AnnotationTextAlignmentX.RIGHT], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_text_alignment_x.AnnotationTextAlignmentX:93928997071280', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'y': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'AnnotationTextAlignmentY'>, 'members': [AnnotationTextAlignmentY.BOTTOM, AnnotationTextAlignmentY.CENTER, AnnotationTextAlignmentY.TOP], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.annotation_text_alignment_y.AnnotationTextAlignmentY:93928997073056', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}}, 'model_name': 'AnnotationTextOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'AnnotationOptions', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'update_annotation', 'schema': {'expected': ['update_annotation'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'update_annotation', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d275700,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "options": SerField {                         key_py: Py(                             0x00007f80f1a3b000,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Model(                                 ModelSerializer {                                     class: Py(                                         0x0000556d8c618310,                                     ),                                     serializer: Fields(                                         GeneralFieldsSerializer {                                             fields: {                                                 "line_ends": SerField {                                                     key_py: Py(                                                         0x00007f80df202d70,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c817670,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "end": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a38900,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Recursive(                                                                                                         DefinitionRefSerializer {                                                                                                             definition: "...",                                                                                                             retry_with_lax_check: false,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "start": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3c340,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Recursive(                                                                                                         DefinitionRefSerializer {                                                                                                             definition: "...",                                                                                                             retry_with_lax_check: false,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 2,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "AnnotationLineEndOptions",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "line_width": SerField {                                                     key_py: Py(                                                         0x00007f80ef971cb0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "position": SerField {                                                     key_py: Py(                                                         0x00007f80f025cbf0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c616f80,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "x": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3d0b8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "y": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e7f8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "z": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e828,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 3,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "Point3d",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "text": SerField {                                                     key_py: Py(                                                         0x00007f80f1a3c8f0,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c813790,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "text": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3c8f0,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Str(                                                                                                         StrSerializer,                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "point_size": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80de6b9630,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Int(                                                                                                         IntSerializer,                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "x": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3d0b8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Enum(                                                                                                         EnumSerializer {                                                                                                             class: Py(                                                                                                                 0x0000556d8c8129b0,                                                                                                             ),                                                                                                             serializer: Some(                                                                                                                 Str(                                                                                                                     StrSerializer,                                                                                                                 ),                                                                                                             ),                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "y": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e7f8,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Enum(                                                                                                         EnumSerializer {                                                                                                             class: Py(                                                                                                                 0x0000556d8c8130a0,                                                                                                             ),                                                                                                             serializer: Some(                                                                                                                 Str(                                                                                                                     StrSerializer,                                                                                                                 ),                                                                                                             ),                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 4,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "AnnotationTextOptions",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                                 "color": SerField {                                                     key_py: Py(                                                         0x00007f80f0a3da40,                                                     ),                                                     alias: None,                                                     alias_py: None,                                                     serializer: Some(                                                         WithDefault(                                                             WithDefaultSerializer {                                                                 default: Default(                                                                     Py(                                                                         0x00007f80f1947100,                                                                     ),                                                                 ),                                                                 serializer: Nullable(                                                                     NullableSerializer {                                                                         serializer: Model(                                                                             ModelSerializer {                                                                                 class: Py(                                                                                     0x0000556d8c6208d0,                                                                                 ),                                                                                 serializer: Fields(                                                                                     GeneralFieldsSerializer {                                                                                         fields: {                                                                                             "b": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a37370,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "a": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a36f50,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "r": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3b710,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                             "g": SerField {                                                                                                 key_py: Py(                                                                                                     0x00007f80f1a3e498,                                                                                                 ),                                                                                                 alias: None,                                                                                                 alias_py: None,                                                                                                 serializer: Some(                                                                                                     Float(                                                                                                         FloatSerializer {                                                                                                             inf_nan_mode: Null,                                                                                                         },                                                                                                     ),                                                                                                 ),                                                                                                 required: true,                                                                                             },                                                                                         },                                                                                         computed_fields: Some(                                                                                             ComputedFields(                                                                                                 [],                                                                                             ),                                                                                         ),                                                                                         mode: SimpleDict,                                                                                         extra_serializer: None,                                                                                         filter: SchemaFilter {                                                                                             include: None,                                                                                             exclude: None,                                                                                         },                                                                                         required_fields: 4,                                                                                     },                                                                                 ),                                                                                 has_extra: false,                                                                                 root_model: false,                                                                                 name: "Color",                                                                             },                                                                         ),                                                                     },                                                                 ),                                                             },                                                         ),                                                     ),                                                     required: true,                                                 },                                             },                                             computed_fields: Some(                                                 ComputedFields(                                                     [],                                                 ),                                             ),                                             mode: SimpleDict,                                             extra_serializer: None,                                             filter: SchemaFilter {                                                 include: None,                                                 exclude: None,                                             },                                             required_fields: 5,                                         },                                     ),                                     has_extra: false,                                     root_model: false,                                     name: "AnnotationOptions",                                 },                             ),                         ),                         required: true,                     },                     "annotation_id": SerField {                         key_py: Py(                             0x00007f80de4934b0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Str(                                 StrSerializer,                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80de4933f0,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "update_annotation",                                             },                                             expected_py: None,                                             name: "literal['update_annotation']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "update_annotation",     }, ), definitions=[Enum(EnumSerializer { class: Py(0x556d8c816f80), serializer: Some(Str(StrSerializer)) })])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="update_annotation", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "annotation_id",                         lookup_key: Simple {                             key: "annotation_id",                             py_key: Py(                                 0x00007f80de36eb70,                             ),                             path: LookupPath(                                 [                                     S(                                         "annotation_id",                                         Py(                                             0x00007f80de36eb30,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4934b0,                         ),                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "options",                         lookup_key: Simple {                             key: "options",                             py_key: Py(                                 0x00007f80de364900,                             ),                             path: LookupPath(                                 [                                     S(                                         "options",                                         Py(                                             0x00007f80de364930,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3b000,                         ),                         validator: Model(                             ModelValidator {                                 revalidate: Never,                                 validator: ModelFields(                                     ModelFieldsValidator {                                         fields: [                                             Field {                                                 name: "color",                                                 lookup_key: Simple {                                                     key: "color",                                                     py_key: Py(                                                         0x00007f80de364720,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "color",                                                                 Py(                                                                     0x00007f80de364750,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f0a3da40,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "a",                                                                                         lookup_key: Simple {                                                                                             key: "a",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e378,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "a",                                                                                                         Py(                                                                                                             0x00007f80f1a3e378,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a36f50,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "b",                                                                                         lookup_key: Simple {                                                                                             key: "b",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e3a8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "b",                                                                                                         Py(                                                                                                             0x00007f80f1a3e3a8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a37370,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "g",                                                                                         lookup_key: Simple {                                                                                             key: "g",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e498,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "g",                                                                                                         Py(                                                                                                             0x00007f80f1a3e498,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e498,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "r",                                                                                         lookup_key: Simple {                                                                                             key: "r",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e6a8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "r",                                                                                                         Py(                                                                                                             0x00007f80f1a3e6a8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3b710,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "Color",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c6208d0,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "Color",                                                                     },                                                                 ),                                                                 name: "nullable[Color]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[Color]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "line_ends",                                                 lookup_key: Simple {                                                     key: "line_ends",                                                     py_key: Py(                                                         0x00007f80de36ebf0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "line_ends",                                                                 Py(                                                                     0x00007f80de36ebb0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80df202d70,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "end",                                                                                         lookup_key: Simple {                                                                                             key: "end",                                                                                             py_key: Py(                                                                                                 0x00007f80de364780,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "end",                                                                                                         Py(                                                                                                             0x00007f80de3647b0,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a38900,                                                                                         ),                                                                                         validator: DefinitionRef(                                                                                             DefinitionRefValidator {                                                                                                 definition: "...",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "start",                                                                                         lookup_key: Simple {                                                                                             key: "start",                                                                                             py_key: Py(                                                                                                 0x00007f80de3647e0,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "start",                                                                                                         Py(                                                                                                             0x00007f80de364810,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3c340,                                                                                         ),                                                                                         validator: DefinitionRef(                                                                                             DefinitionRefValidator {                                                                                                 definition: "...",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "AnnotationLineEndOptions",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c817670,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "AnnotationLineEndOptions",                                                                     },                                                                 ),                                                                 name: "nullable[AnnotationLineEndOptions]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[AnnotationLineEndOptions]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "line_width",                                                 lookup_key: Simple {                                                     key: "line_width",                                                     py_key: Py(                                                         0x00007f80de36ec30,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "line_width",                                                                 Py(                                                                     0x00007f80de36ec70,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80ef971cb0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 name: "nullable[float]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[float]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "position",                                                 lookup_key: Simple {                                                     key: "position",                                                     py_key: Py(                                                         0x00007f80de36ecb0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "position",                                                                 Py(                                                                     0x00007f80de36ecf0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f025cbf0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "x",                                                                                         lookup_key: Simple {                                                                                             key: "x",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7c8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "x",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7c8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3d0b8,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "y",                                                                                         lookup_key: Simple {                                                                                             key: "y",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7f8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "y",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7f8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e7f8,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "z",                                                                                         lookup_key: Simple {                                                                                             key: "z",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e828,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "z",                                                                                                         Py(                                                                                                             0x00007f80f1a3e828,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e828,                                                                                         ),                                                                                         validator: Float(                                                                                             FloatValidator {                                                                                                 strict: false,                                                                                                 allow_inf_nan: true,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "Point3d",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c616f80,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "Point3d",                                                                     },                                                                 ),                                                                 name: "nullable[Point3d]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[Point3d]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                             Field {                                                 name: "text",                                                 lookup_key: Simple {                                                     key: "text",                                                     py_key: Py(                                                         0x00007f80de3648a0,                                                     ),                                                     path: LookupPath(                                                         [                                                             S(                                                                 "text",                                                                 Py(                                                                     0x00007f80de3648d0,                                                                 ),                                                             ),                                                         ],                                                     ),                                                 },                                                 name_py: Py(                                                     0x00007f80f1a3c8f0,                                                 ),                                                 validator: WithDefault(                                                     WithDefaultValidator {                                                         default: Default(                                                             Py(                                                                 0x00007f80f1947100,                                                             ),                                                         ),                                                         on_error: Raise,                                                         validator: Nullable(                                                             NullableValidator {                                                                 validator: Model(                                                                     ModelValidator {                                                                         revalidate: Never,                                                                         validator: ModelFields(                                                                             ModelFieldsValidator {                                                                                 fields: [                                                                                     Field {                                                                                         name: "point_size",                                                                                         lookup_key: Simple {                                                                                             key: "point_size",                                                                                             py_key: Py(                                                                                                 0x00007f80de36ed30,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "point_size",                                                                                                         Py(                                                                                                             0x00007f80de36ed70,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80de6b9630,                                                                                         ),                                                                                         validator: Int(                                                                                             IntValidator {                                                                                                 strict: false,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "text",                                                                                         lookup_key: Simple {                                                                                             key: "text",                                                                                             py_key: Py(                                                                                                 0x00007f80de364840,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "text",                                                                                                         Py(                                                                                                             0x00007f80de364870,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3c8f0,                                                                                         ),                                                                                         validator: Str(                                                                                             StrValidator {                                                                                                 strict: false,                                                                                                 coerce_numbers_to_str: false,                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "x",                                                                                         lookup_key: Simple {                                                                                             key: "x",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7c8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "x",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7c8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3d0b8,                                                                                         ),                                                                                         validator: StrEnum(                                                                                             EnumValidator {                                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                                 class: Py(                                                                                                     0x0000556d8c8129b0,                                                                                                 ),                                                                                                 lookup: LiteralLookup {                                                                                                     expected_bool: None,                                                                                                     expected_int: None,                                                                                                     expected_str: Some(                                                                                                         {                                                                                                             "center": 1,                                                                                                             "right": 2,                                                                                                             "left": 0,                                                                                                         },                                                                                                     ),                                                                                                     expected_py_dict: None,                                                                                                     expected_py_values: None,                                                                                                     values: [                                                                                                         Py(                                                                                                             0x00007f80dede7170,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede71d0,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede7230,                                                                                                         ),                                                                                                     ],                                                                                                 },                                                                                                 missing: None,                                                                                                 expected_repr: "'left', 'center' or 'right'",                                                                                                 strict: false,                                                                                                 class_repr: "AnnotationTextAlignmentX",                                                                                                 name: "str-enum[AnnotationTextAlignmentX]",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                     Field {                                                                                         name: "y",                                                                                         lookup_key: Simple {                                                                                             key: "y",                                                                                             py_key: Py(                                                                                                 0x00007f80f1a3e7f8,                                                                                             ),                                                                                             path: LookupPath(                                                                                                 [                                                                                                     S(                                                                                                         "y",                                                                                                         Py(                                                                                                             0x00007f80f1a3e7f8,                                                                                                         ),                                                                                                     ),                                                                                                 ],                                                                                             ),                                                                                         },                                                                                         name_py: Py(                                                                                             0x00007f80f1a3e7f8,                                                                                         ),                                                                                         validator: StrEnum(                                                                                             EnumValidator {                                                                                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                                                                                 class: Py(                                                                                                     0x0000556d8c8130a0,                                                                                                 ),                                                                                                 lookup: LiteralLookup {                                                                                                     expected_bool: None,                                                                                                     expected_int: None,                                                                                                     expected_str: Some(                                                                                                         {                                                                                                             "bottom": 0,                                                                                                             "center": 1,                                                                                                             "top": 2,                                                                                                         },                                                                                                     ),                                                                                                     expected_py_dict: None,                                                                                                     expected_py_values: None,                                                                                                     values: [                                                                                                         Py(                                                                                                             0x00007f80dede7350,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede73b0,                                                                                                         ),                                                                                                         Py(                                                                                                             0x00007f80dede7410,                                                                                                         ),                                                                                                     ],                                                                                                 },                                                                                                 missing: None,                                                                                                 expected_repr: "'bottom', 'center' or 'top'",                                                                                                 strict: false,                                                                                                 class_repr: "AnnotationTextAlignmentY",                                                                                                 name: "str-enum[AnnotationTextAlignmentY]",                                                                                             },                                                                                         ),                                                                                         frozen: false,                                                                                     },                                                                                 ],                                                                                 model_name: "AnnotationTextOptions",                                                                                 extra_behavior: Ignore,                                                                                 extras_validator: None,                                                                                 strict: false,                                                                                 from_attributes: false,                                                                                 loc_by_alias: true,                                                                             },                                                                         ),                                                                         class: Py(                                                                             0x0000556d8c813790,                                                                         ),                                                                         post_init: None,                                                                         frozen: false,                                                                         custom_init: false,                                                                         root_model: false,                                                                         undefined: Py(                                                                             0x00007f80e0935e70,                                                                         ),                                                                         name: "AnnotationTextOptions",                                                                     },                                                                 ),                                                                 name: "nullable[AnnotationTextOptions]",                                                             },                                                         ),                                                         validate_default: false,                                                         copy_default: false,                                                         name: "default[nullable[AnnotationTextOptions]]",                                                         undefined: Py(                                                             0x00007f80e0935e70,                                                         ),                                                     },                                                 ),                                                 frozen: false,                                             },                                         ],                                         model_name: "AnnotationOptions",                                         extra_behavior: Ignore,                                         extras_validator: None,                                         strict: false,                                         from_attributes: false,                                         loc_by_alias: true,                                     },                                 ),                                 class: Py(                                     0x0000556d8c618310,                                 ),                                 post_init: None,                                 frozen: false,                                 custom_init: false,                                 root_model: false,                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                                 name: "AnnotationOptions",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de364960,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de364990,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80de4933f0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "update_annotation": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80de4933f0,                                                 ),                                             ],                                         },                                         expected_repr: "'update_annotation'",                                         name: "literal['update_annotation']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['update_annotation']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "update_annotation",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d275700,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "update_annotation",     }, ), definitions=[StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x556d8c816f80), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"arrow": 1, "none": 0}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f80dede6b10), Py(0x7f80dede6e70)] }, missing: None, expected_repr: "'none' or 'arrow'", strict: false, class_repr: "AnnotationLineEnd", name: "str-enum[AnnotationLineEnd]" })], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, annotation_id: str, options: kittycad.models.annotation_options.AnnotationOptions, type: Literal['update_annotation'] = 'update_annotation') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

annotation_id: str[source]
classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'annotation_id': FieldInfo(annotation=str, required=True), 'options': FieldInfo(annotation=AnnotationOptions, required=True), 'type': FieldInfo(annotation=Literal['update_annotation'], required=False, default='update_annotation')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

options: AnnotationOptions[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['update_annotation'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.view_isometric(**data)[source][source]

Fit the view to the scene with an isometric view.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'padding': typing.Optional[float], 'type': typing.Literal['view_isometric']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.view_isometric'>, 'config': {'title': 'view_isometric'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.view_isometric'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.view_isometric'>>]}, 'ref': 'kittycad.models.modeling_cmd.view_isometric:93929009098016', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'padding': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'view_isometric', 'schema': {'expected': ['view_isometric'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'view_isometric', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>, 'zoom_to_fit': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d38ad20,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "padding": SerField {                         key_py: Py(                             0x00007f80f0a3cff0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: Float(                                                 FloatSerializer {                                                     inf_nan_mode: Null,                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19dc70,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "view_isometric",                                             },                                             expected_py: None,                                             name: "literal['view_isometric']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 2,             },         ),         has_extra: false,         root_model: false,         name: "view_isometric",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="view_isometric", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "padding",                         lookup_key: Simple {                             key: "padding",                             py_key: Py(                                 0x00007f80de2db960,                             ),                             path: LookupPath(                                 [                                     S(                                         "padding",                                         Py(                                             0x00007f80de2db990,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3cff0,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2db9c0,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2db9f0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19dc70,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "view_isometric": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19dc70,                                                 ),                                             ],                                         },                                         expected_repr: "'view_isometric'",                                         name: "literal['view_isometric']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['view_isometric']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "view_isometric",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d38ad20,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "view_isometric",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, padding: Optional[float] = None, type: Literal['view_isometric'] = 'view_isometric') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'padding': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Literal['view_isometric'], required=False, default='view_isometric')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

padding: Optional[float][source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['view_isometric'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.volume(**data)[source][source]

Get the volume of entities in the scene or the default scene.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'entity_ids': typing.List[str], 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'output_unit': <enum 'UnitVolume'>, 'type': typing.Literal['volume']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.volume'>, 'config': {'title': 'volume'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.volume'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.volume'>>]}, 'ref': 'kittycad.models.modeling_cmd.volume:93929008968752', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'entity_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'output_unit': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'UnitVolume'>, 'members': [UnitVolume.CM3, UnitVolume.FT3, UnitVolume.IN3, UnitVolume.M3, UnitVolume.YD3, UnitVolume.USFLOZ, UnitVolume.USGAL, UnitVolume.L, UnitVolume.ML], 'metadata': {'pydantic_js_functions': [<function get_enum_core_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.unit_volume.UnitVolume:93929000520208', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'volume', 'schema': {'expected': ['volume'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'volume', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d36b430,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "entity_ids": SerField {                         key_py: Py(                             0x00007f80de503170,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             List(                                 ListSerializer {                                     item_serializer: Str(                                         StrSerializer,                                     ),                                     filter: SchemaFilter {                                         include: None,                                         exclude: None,                                     },                                     name: "list[str]",                                 },                             ),                         ),                         required: true,                     },                     "output_unit": SerField {                         key_py: Py(                             0x00007f80dedc5eb0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Enum(                                 EnumSerializer {                                     class: Py(                                         0x0000556d8cb5ca10,                                     ),                                     serializer: Some(                                         Str(                                             StrSerializer,                                         ),                                     ),                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1a3ce50,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "volume",                                             },                                             expected_py: None,                                             name: "literal['volume']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "volume",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="volume", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "entity_ids",                         lookup_key: Simple {                             key: "entity_ids",                             py_key: Py(                                 0x00007f80de3a89f0,                             ),                             path: LookupPath(                                 [                                     S(                                         "entity_ids",                                         Py(                                             0x00007f80de2b0a70,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de503170,                         ),                         validator: List(                             ListValidator {                                 strict: false,                                 item_validator: Some(                                     Str(                                         StrValidator {                                             strict: false,                                             coerce_numbers_to_str: false,                                         },                                     ),                                 ),                                 min_length: None,                                 max_length: None,                                 name: OnceLock(                                     <uninit>,                                 ),                                 fail_fast: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "output_unit",                         lookup_key: Simple {                             key: "output_unit",                             py_key: Py(                                 0x00007f80de2b0af0,                             ),                             path: LookupPath(                                 [                                     S(                                         "output_unit",                                         Py(                                             0x00007f80de2b0ab0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80dedc5eb0,                         ),                         validator: StrEnum(                             EnumValidator {                                 phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>,                                 class: Py(                                     0x0000556d8cb5ca10,                                 ),                                 lookup: LiteralLookup {                                     expected_bool: None,                                     expected_int: None,                                     expected_str: Some(                                         {                                             "cm3": 0,                                             "ml": 8,                                             "yd3": 4,                                             "usgal": 6,                                             "ft3": 1,                                             "m3": 3,                                             "l": 7,                                             "usfloz": 5,                                             "in3": 2,                                         },                                     ),                                     expected_py_dict: None,                                     expected_py_values: None,                                     values: [                                         Py(                                             0x00007f80de79ca70,                                         ),                                         Py(                                             0x00007f80de79cad0,                                         ),                                         Py(                                             0x00007f80de79cb30,                                         ),                                         Py(                                             0x00007f80de79cb90,                                         ),                                         Py(                                             0x00007f80de79cbf0,                                         ),                                         Py(                                             0x00007f80de79cc50,                                         ),                                         Py(                                             0x00007f80de79ccb0,                                         ),                                         Py(                                             0x00007f80de79cd10,                                         ),                                         Py(                                             0x00007f80de79cd70,                                         ),                                     ],                                 },                                 missing: None,                                 expected_repr: "'cm3', 'ft3', 'in3', 'm3', 'yd3', 'usfloz', 'usgal', 'l' or 'ml'",                                 strict: false,                                 class_repr: "UnitVolume",                                 name: "str-enum[UnitVolume]",                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2a3840,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2a37e0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1a3ce50,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "volume": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80f1a3ce50,                                                 ),                                             ],                                         },                                         expected_repr: "'volume'",                                         name: "literal['volume']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['volume']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "volume",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d36b430,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "volume",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, entity_ids: List[str], output_unit: kittycad.models.unit_volume.UnitVolume, type: Literal['volume'] = 'volume') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

entity_ids: List[str][source]
classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'entity_ids': FieldInfo(annotation=List[str], required=True), 'output_unit': FieldInfo(annotation=UnitVolume, required=True), 'type': FieldInfo(annotation=Literal['volume'], required=False, default='volume')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

output_unit: UnitVolume[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['volume'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self

class kittycad.models.modeling_cmd.zoom_to_fit(**data)[source][source]

Fit the view to the specified object(s).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__abstractmethods__ = frozenset({})[source]
__annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'model_computed_fields': 'ClassVar[dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[dict[str, FieldInfo]]', 'object_ids': typing.Optional[typing.List[str]], 'padding': <class 'float'>, 'type': typing.Literal['zoom_to_fit']}[source]
classmethod __class_getitem__(typevar_values)[source]
Return type:

type[BaseModel] | PydanticRecursiveRef

__class_vars__: ClassVar[set[str]] = {}[source]
__copy__()[source]

Returns a shallow copy of the model.

Return type:

Self

__deepcopy__(memo=None)[source]

Returns a deep copy of the model.

Return type:

Self

__delattr__(item)[source]

Implement delattr(self, name).

Return type:

Any

__dict__[source]
__eq__(other)[source]

Return self==value.

Return type:

bool

property __fields_set__: set[str][source]
classmethod __get_pydantic_core_schema__(source, handler, /)[source]

Hook into generating the model’s CoreSchema.

Parameters:
  • source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • handler (GetCoreSchemaHandler) – A callable that calls into Pydantic’s internal CoreSchema generation logic.

Return type:

Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]

Returns:

A pydantic-core CoreSchema.

classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]

Hook into generating the model’s JSON schema.

Parameters:
  • core_schema (Union[AnySchema, NoneSchema, BoolSchema, IntSchema, FloatSchema, DecimalSchema, StringSchema, BytesSchema, DateSchema, TimeSchema, DatetimeSchema, TimedeltaSchema, LiteralSchema, EnumSchema, IsInstanceSchema, IsSubclassSchema, CallableSchema, ListSchema, TupleSchema, SetSchema, FrozenSetSchema, GeneratorSchema, DictSchema, AfterValidatorFunctionSchema, BeforeValidatorFunctionSchema, WrapValidatorFunctionSchema, PlainValidatorFunctionSchema, WithDefaultSchema, NullableSchema, UnionSchema, TaggedUnionSchema, ChainSchema, LaxOrStrictSchema, JsonOrPythonSchema, TypedDictSchema, ModelFieldsSchema, ModelSchema, DataclassArgsSchema, DataclassSchema, ArgumentsSchema, CallSchema, CustomErrorSchema, JsonSchema, UrlSchema, MultiHostUrlSchema, DefinitionsSchema, DefinitionReferenceSchema, UuidSchema]) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}), or just call the handler with the original schema.

  • handler (GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Return type:

Dict[str, Any]

Returns:

A JSON schema, as a Python object.

__getattr__(item)[source]
Return type:

Any

__getstate__()[source]

Helper for pickle.

Return type:

dict[Any, Any]

__hash__ = None[source]
__init__(**data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

__iter__()[source]

So dict(model) works.

Return type:

Generator[Tuple[str, Any], None, None]

__module__ = 'kittycad.models.modeling_cmd'[source]
__pretty__(fmt, **kwargs)[source]

Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.

Return type:

Generator[Any, None, None]

__private_attributes__: ClassVar[dict[str, ModelPrivateAttr]] = {}[source]
__pydantic_complete__: ClassVar[bool] = True[source]
__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'kittycad.models.modeling_cmd.zoom_to_fit'>, 'config': {'title': 'zoom_to_fit'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.modeling_cmd.zoom_to_fit'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.modeling_cmd.zoom_to_fit'>>]}, 'ref': 'kittycad.models.modeling_cmd.zoom_to_fit:93929009087440', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'object_ids': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'padding': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'zoom_to_fit', 'schema': {'expected': ['zoom_to_fit'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'zoom_to_fit', 'type': 'model-fields'}, 'type': 'model'}[source]
__pydantic_custom_init__: ClassVar[bool] = False[source]
__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
__pydantic_extra__: dict[str, Any] | None[source]
__pydantic_fields_set__: set[str][source]
__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
classmethod __pydantic_init_subclass__(**kwargs)[source]

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

__pydantic_parent_namespace__: ClassVar[dict[str, Any] | None] = {'Angle': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Annotated': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationOptions': <pydantic._internal._model_construction._PydanticWeakRef object>, 'AnnotationType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'BaseModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CameraDragInteractionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ConfigDict': <pydantic._internal._model_construction._PydanticWeakRef object>, 'CutType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'DistanceType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'EntityType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Field': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImageFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ImportFile': <pydantic._internal._model_construction._PydanticWeakRef object>, 'InputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LengthUnit': <pydantic._internal._model_construction._PydanticWeakRef object>, 'LinearTransform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'List': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Literal': <pydantic._internal._model_construction._PydanticWeakRef object>, 'ModelingCmdId': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Optional': <pydantic._internal._model_construction._PydanticWeakRef object>, 'OutputFormat': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintBound': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathComponentConstraintType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PathSegment': <pydantic._internal._model_construction._PydanticWeakRef object>, 'PerspectiveCameraParameters': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point2d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Point3d': <pydantic._internal._model_construction._PydanticWeakRef object>, 'RootModel': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneSelectionType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'SceneToolType': <pydantic._internal._model_construction._PydanticWeakRef object>, 'Union': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitArea': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitDensity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitLength': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitMass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'UnitVolume': <pydantic._internal._model_construction._PydanticWeakRef object>, '__builtins__': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionError': <class 'ConnectionError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EOFError': <class 'EOFError'>, 'Ellipsis': Ellipsis, 'EncodingWarning': <class 'EncodingWarning'>, 'EnvironmentError': <class 'OSError'>, 'Exception': <class 'Exception'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'False': False, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'FutureWarning': <class 'FutureWarning'>, 'GeneratorExit': <class 'GeneratorExit'>, 'IOError': <class 'OSError'>, 'ImportError': <class 'ImportError'>, 'ImportWarning': <class 'ImportWarning'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'KeyError': <class 'KeyError'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NameError': <class 'NameError'>, 'None': None, 'NotADirectoryError': <class 'NotADirectoryError'>, 'NotImplemented': NotImplemented, 'NotImplementedError': <class 'NotImplementedError'>, 'OSError': <class 'OSError'>, 'OverflowError': <class 'OverflowError'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'RecursionError': <class 'RecursionError'>, 'ReferenceError': <class 'ReferenceError'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeError': <class 'RuntimeError'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'SystemError': <class 'SystemError'>, 'SystemExit': <class 'SystemExit'>, 'TabError': <class 'TabError'>, 'TimeoutError': <class 'TimeoutError'>, 'True': True, 'TypeError': <class 'TypeError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, '__build_class__': <built-in function __build_class__>, '__debug__': True, '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__import__': <built-in function __import__>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': 'builtins', '__package__': '', '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'abs': <built-in function abs>, 'aiter': <built-in function aiter>, 'all': <built-in function all>, 'anext': <built-in function anext>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'bool': <class 'bool'>, 'breakpoint': <built-in function breakpoint>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'classmethod': <class 'classmethod'>, 'compile': <built-in function compile>, 'complex': <class 'complex'>, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.  Copyright (c) 2000 BeOpen.com. All Rights Reserved.  Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.  Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits':     Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands     for supporting Python development.  See www.python.org for more information., 'delattr': <built-in function delattr>, 'dict': <class 'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'enumerate': <class 'enumerate'>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'filter': <class 'filter'>, 'float': <class 'float'>, 'format': <built-in function format>, 'frozenset': <class 'frozenset'>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'help': Type help() for interactive help, or help(object) for help about object., 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'int': <class 'int'>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'len': <built-in function len>, 'license': Type license() to see the full license text, 'list': <class 'list'>, 'locals': <built-in function locals>, 'map': <class 'map'>, 'max': <built-in function max>, 'memoryview': <class 'memoryview'>, 'min': <built-in function min>, 'next': <built-in function next>, 'object': <class 'object'>, 'oct': <built-in function oct>, 'open': <built-in function open>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'property': <class 'property'>, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'range': <class 'range'>, 'repr': <built-in function repr>, 'reversed': <class 'reversed'>, 'round': <built-in function round>, 'set': <class 'set'>, 'setattr': <built-in function setattr>, 'slice': <class 'slice'>, 'sorted': <built-in function sorted>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'sum': <built-in function sum>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'vars': <built-in function vars>, 'zip': <class 'zip'>}, '__cached__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/__pycache__/modeling_cmd.cpython-312.pyc', '__doc__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__file__': '/home/runner/work/kittycad.py/kittycad.py/kittycad/models/modeling_cmd.py', '__loader__': <pydantic._internal._model_construction._PydanticWeakRef object>, '__name__': 'kittycad.models.modeling_cmd', '__package__': 'kittycad.models', '__spec__': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'camera_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'center_of_mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'close_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_control_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_end_points': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_get_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'curve_set_constraint': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_focus_on': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_get_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_look_at': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_perspective_settings': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_orthographic': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_set_perspective': <pydantic._internal._model_construction._PydanticWeakRef object>, 'default_camera_zoom': <pydantic._internal._model_construction._PydanticWeakRef object>, 'density': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edge_lines_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'edit_mode_enter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'enable_sketch_mode': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_circular_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_fade': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_all_child_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_child_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_distance': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_num_children': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_parent_id': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_get_sketch_paths': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_linear_pattern_transform': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_make_helix': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_mirror_across_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'entity_set_opacity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'export': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extend_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'extrude': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_center': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_gradient': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_get_position': <pydantic._internal._model_construction._PydanticWeakRef object>, 'face_is_planar': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_entity_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'get_sketch_mode_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_end': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'handle_mouse_drag_start': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entities': <pydantic._internal._model_construction._PydanticWeakRef object>, 'highlight_set_entity': <pydantic._internal._model_construction._PydanticWeakRef object>, 'import_files': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_axes_gizmo': <pydantic._internal._model_construction._PydanticWeakRef object>, 'make_plane': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mass': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_click': <pydantic._internal._model_construction._PydanticWeakRef object>, 'mouse_move': <pydantic._internal._model_construction._PydanticWeakRef object>, 'move_path_pen': <pydantic._internal._model_construction._PydanticWeakRef object>, 'new_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_bring_to_front': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_set_material_params_pbr': <pydantic._internal._model_construction._PydanticWeakRef object>, 'object_visible': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_curve_uuids_for_vertices': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_info': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_sketch_target_uuid': <pydantic._internal._model_construction._PydanticWeakRef object>, 'path_get_vertex_uuids': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_intersect_and_project': <pydantic._internal._model_construction._PydanticWeakRef object>, 'plane_set_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'reconfigure_stream': <pydantic._internal._model_construction._PydanticWeakRef object>, 'remove_scene_objects': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve': <pydantic._internal._model_construction._PydanticWeakRef object>, 'revolve_about_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'scene_clear_all': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_add': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_remove': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_replace': <pydantic._internal._model_construction._PydanticWeakRef object>, 'select_with_point': <pydantic._internal._model_construction._PydanticWeakRef object>, 'send_object': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_background_color': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_current_tool_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_default_system_properties': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_scene_units': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_filter': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_selection_type': <pydantic._internal._model_construction._PydanticWeakRef object>, 'set_tool': <pydantic._internal._model_construction._PydanticWeakRef object>, 'sketch_mode_disable': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid2d_add_hole': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_fillet_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_edge_faces': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_all_opposite_edges': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_next_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_opposite_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_get_prev_adjacent_edge': <pydantic._internal._model_construction._PydanticWeakRef object>, 'solid3d_shell_face': <pydantic._internal._model_construction._PydanticWeakRef object>, 'start_path': <pydantic._internal._model_construction._PydanticWeakRef object>, 'surface_area': <pydantic._internal._model_construction._PydanticWeakRef object>, 'take_snapshot': <pydantic._internal._model_construction._PydanticWeakRef object>, 'update_annotation': <pydantic._internal._model_construction._PydanticWeakRef object>, 'volume': <pydantic._internal._model_construction._PydanticWeakRef object>}[source]
__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
__pydantic_private__: dict[str, Any] | None[source]
__pydantic_root_model__: ClassVar[bool] = False[source]
__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model(     ModelSerializer {         class: Py(             0x0000556d8d3883d0,         ),         serializer: Fields(             GeneralFieldsSerializer {                 fields: {                     "padding": SerField {                         key_py: Py(                             0x00007f80f0a3cff0,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             Float(                                 FloatSerializer {                                     inf_nan_mode: Null,                                 },                             ),                         ),                         required: true,                     },                     "type": SerField {                         key_py: Py(                             0x00007f80f1a3cbf8,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80df19d830,                                         ),                                     ),                                     serializer: Literal(                                         LiteralSerializer {                                             expected_int: {},                                             expected_str: {                                                 "zoom_to_fit",                                             },                                             expected_py: None,                                             name: "literal['zoom_to_fit']",                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                     "object_ids": SerField {                         key_py: Py(                             0x00007f80de4bb730,                         ),                         alias: None,                         alias_py: None,                         serializer: Some(                             WithDefault(                                 WithDefaultSerializer {                                     default: Default(                                         Py(                                             0x00007f80f1947100,                                         ),                                     ),                                     serializer: Nullable(                                         NullableSerializer {                                             serializer: List(                                                 ListSerializer {                                                     item_serializer: Str(                                                         StrSerializer,                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[str]",                                                 },                                             ),                                         },                                     ),                                 },                             ),                         ),                         required: true,                     },                 },                 computed_fields: Some(                     ComputedFields(                         [],                     ),                 ),                 mode: SimpleDict,                 extra_serializer: None,                 filter: SchemaFilter {                     include: None,                     exclude: None,                 },                 required_fields: 3,             },         ),         has_extra: false,         root_model: false,         name: "zoom_to_fit",     }, ), definitions=[])[source]
__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="zoom_to_fit", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "object_ids",                         lookup_key: Simple {                             key: "object_ids",                             py_key: Py(                                 0x00007f80de2cfc30,                             ),                             path: LookupPath(                                 [                                     S(                                         "object_ids",                                         Py(                                             0x00007f80de2cfab0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80de4bb730,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80f1947100,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: List(                                             ListValidator {                                                 strict: false,                                                 item_validator: Some(                                                     Str(                                                         StrValidator {                                                             strict: false,                                                             coerce_numbers_to_str: false,                                                         },                                                     ),                                                 ),                                                 min_length: None,                                                 max_length: None,                                                 name: OnceLock(                                                     "list[str]",                                                 ),                                                 fail_fast: false,                                             },                                         ),                                         name: "nullable[list[str]]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[list[str]]]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "padding",                         lookup_key: Simple {                             key: "padding",                             py_key: Py(                                 0x00007f80de2d9b60,                             ),                             path: LookupPath(                                 [                                     S(                                         "padding",                                         Py(                                             0x00007f80de2d9ad0,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f0a3cff0,                         ),                         validator: Float(                             FloatValidator {                                 strict: false,                                 allow_inf_nan: true,                             },                         ),                         frozen: false,                     },                     Field {                         name: "type",                         lookup_key: Simple {                             key: "type",                             py_key: Py(                                 0x00007f80de2d9b00,                             ),                             path: LookupPath(                                 [                                     S(                                         "type",                                         Py(                                             0x00007f80de2d9a40,                                         ),                                     ),                                 ],                             ),                         },                         name_py: Py(                             0x00007f80f1a3cbf8,                         ),                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f80df19d830,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "zoom_to_fit": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             values: [                                                 Py(                                                     0x00007f80df19d830,                                                 ),                                             ],                                         },                                         expected_repr: "'zoom_to_fit'",                                         name: "literal['zoom_to_fit']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['zoom_to_fit']]",                                 undefined: Py(                                     0x00007f80e0935e70,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "zoom_to_fit",                 extra_behavior: Ignore,                 extras_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,             },         ),         class: Py(             0x0000556d8d3883d0,         ),         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f80e0935e70,         ),         name: "zoom_to_fit",     }, ), definitions=[], cache_strings=True)[source]
__repr__()[source]

Return repr(self).

Return type:

str

__repr_args__()[source]
Return type:

Iterable[tuple[Optional[str], Any]]

__repr_name__()[source]

Name of the instance’s class, used in __repr__.

Return type:

str

__repr_str__(join_str)[source]
Return type:

str

__rich_repr__()[source]

Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.

Return type:

Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]

__setattr__(name, value)[source]

Implement setattr(self, name, value).

Return type:

None

__setstate__(state)[source]
Return type:

None

__signature__: ClassVar[Signature] = <Signature (*, object_ids: Optional[List[str]] = None, padding: float, type: Literal['zoom_to_fit'] = 'zoom_to_fit') -> None>[source]
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
__str__()[source]

Return str(self).

Return type:

str

_abc_impl = <_abc._abc_data object>[source]
_calculate_keys(*args, **kwargs)[source]
Return type:

Any

_check_frozen(name, value)[source]
Return type:

None

_copy_and_set_values(*args, **kwargs)[source]
Return type:

Any

classmethod _get_value(*args, **kwargs)[source]
Return type:

Any

_iter(*args, **kwargs)[source]
Return type:

Any

classmethod construct(_fields_set=None, **values)[source]
Return type:

Self

copy(*, include=None, exclude=None, update=None, deep=False)[source]

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
Return type:

Dict[str, Any]

classmethod from_orm(obj)[source]
Return type:

Self

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}[source]

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_construct(_fields_set=None, **values)[source]

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == 'allow', then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == 'ignore' (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == 'forbid' does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set (Optional[set[str]]) – The set of field names accepted for the Model instance.

  • values (Any) – Trusted or pre-validated data dictionary.

Return type:

Self

Returns:

A new instance of the Model class with validated data.

model_copy(*, update=None, deep=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update (Optional[dict[str, Any]]) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Return type:

Self

Returns:

New model instance.

model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (Union[Literal['json', 'python'], str]) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to include in the output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – A set of fields to exclude from the output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

dict[str, Any]

Returns:

A dictionary representation of the model.

model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (Optional[int]) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to include in the JSON output.

  • exclude (Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]) – Field(s) to exclude from the JSON output.

  • context (Optional[Any]) – Additional context to pass to the serializer.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings (Union[bool, Literal['none', 'warn', 'error']]) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.

Return type:

str

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None[source]

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to "allow".

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_ids': FieldInfo(annotation=Union[List[str], NoneType], required=False, default=None), 'padding': FieldInfo(annotation=float, required=True), 'type': FieldInfo(annotation=Literal['zoom_to_fit'], required=False, default='zoom_to_fit')}[source]

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

property model_fields_set: set[str][source]

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')[source]

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.

Return type:

dict[str, Any]

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params)[source]

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Return type:

str

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context)[source]

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)[source]

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (Optional[dict[str, Any]]) – The types namespace, defaults to None.

Return type:

Optional[bool]

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)[source]

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • from_attributes (Optional[bool]) – Whether to extract data from object attributes.

  • context (Optional[Any]) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Return type:

Self

Returns:

The validated model instance.

classmethod model_validate_json(json_data, *, strict=None, context=None)[source]

Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

classmethod model_validate_strings(obj, *, strict=None, context=None)[source]

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj (Any) – The object containing string data to validate.

  • strict (Optional[bool]) – Whether to enforce types strictly.

  • context (Optional[Any]) – Extra variables to pass to the validator.

Return type:

Self

Returns:

The validated Pydantic model.

object_ids: Optional[List[str]][source]
padding: float[source]
classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod parse_obj(obj)[source]
Return type:

Self

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)[source]
Return type:

Self

classmethod schema(by_alias=True, ref_template='#/$defs/{model}')[source]
Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)[source]
Return type:

str

type: Literal['zoom_to_fit'][source]
classmethod update_forward_refs(**localns)[source]
Return type:

None

classmethod validate(value)[source]
Return type:

Self