Source code for kittycad.models.modeling_cmd

from enum import Enum
from typing import Any, Dict, List, Type, TypeVar, Union

import attr

from ..models.camera_drag_interaction_type import CameraDragInteractionType
from ..models.modeling_cmd_id import ModelingCmdId
from ..models.output_format import OutputFormat
from ..models.path_segment import PathSegment
from ..models.point2d import Point2d
from ..models.point3d import Point3d
from ..types import UNSET, Unset
from .extrude import Extrude


[docs]class StartPath(str, Enum): """Start a path.""" # noqa: E501 START_PATH = "StartPath"
[docs] def __str__(self) -> str: return str(self.value)
TP = TypeVar("TP", bound="MovePathPen")
[docs]@attr.s(auto_attribs=True) class MovePathPen: path: Union[Unset, ModelingCmdId] = UNSET to: Union[Unset, Point3d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.path, Unset): path = self.path if not isinstance(self.to, Unset): to = self.to field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if path is not UNSET: field_dict["path"] = path if to is not UNSET: field_dict["to"] = to return field_dict
[docs] @classmethod def from_dict(cls: Type[TP], src_dict: Dict[str, Any]) -> TP: d = src_dict.copy() _path = d.pop("path", UNSET) path: Union[Unset, ModelingCmdId] if isinstance(_path, Unset): path = UNSET else: path = _path # type: ignore[arg-type] _to = d.pop("to", UNSET) to: Union[Unset, Point3d] if isinstance(_to, Unset): to = UNSET else: to = _to # type: ignore[arg-type] move_path_pen = cls( path=path, to=to, ) move_path_pen.additional_properties = d return move_path_pen
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
CF = TypeVar("CF", bound="ExtendPath")
[docs]@attr.s(auto_attribs=True) class ExtendPath: path: Union[Unset, ModelingCmdId] = UNSET segment: Union[Unset, PathSegment] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.path, Unset): path = self.path if not isinstance(self.segment, Unset): segment = self.segment field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if path is not UNSET: field_dict["path"] = path if segment is not UNSET: field_dict["segment"] = segment return field_dict
[docs] @classmethod def from_dict(cls: Type[CF], src_dict: Dict[str, Any]) -> CF: d = src_dict.copy() _path = d.pop("path", UNSET) path: Union[Unset, ModelingCmdId] if isinstance(_path, Unset): path = UNSET else: path = _path # type: ignore[arg-type] _segment = d.pop("segment", UNSET) segment: Union[Unset, PathSegment] if isinstance(_segment, Unset): segment = UNSET else: segment = _segment # type: ignore[arg-type] extend_path = cls( path=path, segment=segment, ) extend_path.additional_properties = d return extend_path
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
OM = TypeVar("OM", bound="ClosePath")
[docs]@attr.s(auto_attribs=True) class ClosePath: path_id: Union[Unset, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: path_id = self.path_id field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if path_id is not UNSET: field_dict["path_id"] = path_id return field_dict
[docs] @classmethod def from_dict(cls: Type[OM], src_dict: Dict[str, Any]) -> OM: d = src_dict.copy() path_id = d.pop("path_id", UNSET) close_path = cls( path_id=path_id, ) close_path.additional_properties = d return close_path
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
EN = TypeVar("EN", bound="CameraDragStart")
[docs]@attr.s(auto_attribs=True) class CameraDragStart: interaction: Union[Unset, CameraDragInteractionType] = UNSET window: Union[Unset, Point2d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.interaction, Unset): interaction = self.interaction if not isinstance(self.window, Unset): window = self.window field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if interaction is not UNSET: field_dict["interaction"] = interaction if window is not UNSET: field_dict["window"] = window return field_dict
[docs] @classmethod def from_dict(cls: Type[EN], src_dict: Dict[str, Any]) -> EN: d = src_dict.copy() _interaction = d.pop("interaction", UNSET) interaction: Union[Unset, CameraDragInteractionType] if isinstance(_interaction, Unset): interaction = UNSET else: interaction = _interaction # type: ignore[arg-type] _window = d.pop("window", UNSET) window: Union[Unset, Point2d] if isinstance(_window, Unset): window = UNSET else: window = _window # type: ignore[arg-type] camera_drag_start = cls( interaction=interaction, window=window, ) camera_drag_start.additional_properties = d return camera_drag_start
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
RS = TypeVar("RS", bound="CameraDragMove")
[docs]@attr.s(auto_attribs=True) class CameraDragMove: interaction: Union[Unset, CameraDragInteractionType] = UNSET sequence: Union[Unset, int] = UNSET window: Union[Unset, Point2d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.interaction, Unset): interaction = self.interaction sequence = self.sequence if not isinstance(self.window, Unset): window = self.window field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if interaction is not UNSET: field_dict["interaction"] = interaction if sequence is not UNSET: field_dict["sequence"] = sequence if window is not UNSET: field_dict["window"] = window return field_dict
[docs] @classmethod def from_dict(cls: Type[RS], src_dict: Dict[str, Any]) -> RS: d = src_dict.copy() _interaction = d.pop("interaction", UNSET) interaction: Union[Unset, CameraDragInteractionType] if isinstance(_interaction, Unset): interaction = UNSET else: interaction = _interaction # type: ignore[arg-type] sequence = d.pop("sequence", UNSET) _window = d.pop("window", UNSET) window: Union[Unset, Point2d] if isinstance(_window, Unset): window = UNSET else: window = _window # type: ignore[arg-type] camera_drag_move = cls( interaction=interaction, sequence=sequence, window=window, ) camera_drag_move.additional_properties = d return camera_drag_move
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
LR = TypeVar("LR", bound="CameraDragEnd")
[docs]@attr.s(auto_attribs=True) class CameraDragEnd: interaction: Union[Unset, CameraDragInteractionType] = UNSET window: Union[Unset, Point2d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.interaction, Unset): interaction = self.interaction if not isinstance(self.window, Unset): window = self.window field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if interaction is not UNSET: field_dict["interaction"] = interaction if window is not UNSET: field_dict["window"] = window return field_dict
[docs] @classmethod def from_dict(cls: Type[LR], src_dict: Dict[str, Any]) -> LR: d = src_dict.copy() _interaction = d.pop("interaction", UNSET) interaction: Union[Unset, CameraDragInteractionType] if isinstance(_interaction, Unset): interaction = UNSET else: interaction = _interaction # type: ignore[arg-type] _window = d.pop("window", UNSET) window: Union[Unset, Point2d] if isinstance(_window, Unset): window = UNSET else: window = _window # type: ignore[arg-type] camera_drag_end = cls( interaction=interaction, window=window, ) camera_drag_end.additional_properties = d return camera_drag_end
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
MP = TypeVar("MP", bound="DefaultCameraLookAt")
[docs]@attr.s(auto_attribs=True) class DefaultCameraLookAt: center: Union[Unset, Point3d] = UNSET up: Union[Unset, Point3d] = UNSET vantage: Union[Unset, Point3d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.center, Unset): center = self.center if not isinstance(self.up, Unset): up = self.up if not isinstance(self.vantage, Unset): vantage = self.vantage field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if center is not UNSET: field_dict["center"] = center if up is not UNSET: field_dict["up"] = up if vantage is not UNSET: field_dict["vantage"] = vantage return field_dict
[docs] @classmethod def from_dict(cls: Type[MP], src_dict: Dict[str, Any]) -> MP: d = src_dict.copy() _center = d.pop("center", UNSET) center: Union[Unset, Point3d] if isinstance(_center, Unset): center = UNSET else: center = _center # type: ignore[arg-type] _up = d.pop("up", UNSET) up: Union[Unset, Point3d] if isinstance(_up, Unset): up = UNSET else: up = _up # type: ignore[arg-type] _vantage = d.pop("vantage", UNSET) vantage: Union[Unset, Point3d] if isinstance(_vantage, Unset): vantage = UNSET else: vantage = _vantage # type: ignore[arg-type] default_camera_look_at = cls( center=center, up=up, vantage=vantage, ) default_camera_look_at.additional_properties = d return default_camera_look_at
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
WF = TypeVar("WF", bound="DefaultCameraEnableSketchMode")
[docs]@attr.s(auto_attribs=True) class DefaultCameraEnableSketchMode: distance_to_plane: Union[Unset, float] = UNSET origin: Union[Unset, Point3d] = UNSET ortho: Union[Unset, bool] = False x_axis: Union[Unset, Point3d] = UNSET y_axis: Union[Unset, Point3d] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: distance_to_plane = self.distance_to_plane if not isinstance(self.origin, Unset): origin = self.origin ortho = self.ortho if not isinstance(self.x_axis, Unset): x_axis = self.x_axis if not isinstance(self.y_axis, Unset): y_axis = self.y_axis field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if distance_to_plane is not UNSET: field_dict["distance_to_plane"] = distance_to_plane if origin is not UNSET: field_dict["origin"] = origin if ortho is not UNSET: field_dict["ortho"] = ortho if x_axis is not UNSET: field_dict["x_axis"] = x_axis if y_axis is not UNSET: field_dict["y_axis"] = y_axis return field_dict
[docs] @classmethod def from_dict(cls: Type[WF], src_dict: Dict[str, Any]) -> WF: d = src_dict.copy() distance_to_plane = d.pop("distance_to_plane", UNSET) _origin = d.pop("origin", UNSET) origin: Union[Unset, Point3d] if isinstance(_origin, Unset): origin = UNSET else: origin = _origin # type: ignore[arg-type] ortho = d.pop("ortho", UNSET) _x_axis = d.pop("x_axis", UNSET) x_axis: Union[Unset, Point3d] if isinstance(_x_axis, Unset): x_axis = UNSET else: x_axis = _x_axis # type: ignore[arg-type] _y_axis = d.pop("y_axis", UNSET) y_axis: Union[Unset, Point3d] if isinstance(_y_axis, Unset): y_axis = UNSET else: y_axis = _y_axis # type: ignore[arg-type] default_camera_enable_sketch_mode = cls( distance_to_plane=distance_to_plane, origin=origin, ortho=ortho, x_axis=x_axis, y_axis=y_axis, ) default_camera_enable_sketch_mode.additional_properties = d return default_camera_enable_sketch_mode
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
[docs]class DefaultCameraDisableSketchMode(str, Enum): """Disable sketch mode, from the default camera.""" # noqa: E501 DEFAULT_CAMERA_DISABLE_SKETCH_MODE = "DefaultCameraDisableSketchMode"
[docs] def __str__(self) -> str: return str(self.value)
RO = TypeVar("RO", bound="Export")
[docs]@attr.s(auto_attribs=True) class Export: format: Union[Unset, OutputFormat] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: if not isinstance(self.format, Unset): format = self.format field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if format is not UNSET: field_dict["format"] = format return field_dict
[docs] @classmethod def from_dict(cls: Type[RO], src_dict: Dict[str, Any]) -> RO: d = src_dict.copy() _format = d.pop("format", UNSET) format: Union[Unset, OutputFormat] if isinstance(_format, Unset): format = UNSET else: format = _format # type: ignore[arg-type] export = cls( format=format, ) export.additional_properties = d return export
@property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys())
[docs] def __getitem__(self, key: str) -> Any: return self.additional_properties[key]
[docs] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value
[docs] def __delitem__(self, key: str) -> None: del self.additional_properties[key]
[docs] def __contains__(self, key: str) -> bool: return key in self.additional_properties
ModelingCmd = Union[ StartPath, MovePathPen, ExtendPath, Extrude, ClosePath, CameraDragStart, CameraDragMove, CameraDragEnd, DefaultCameraLookAt, DefaultCameraEnableSketchMode, DefaultCameraDisableSketchMode, Export, ]