autoassembler 0.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- autoassembler/.fernignore +7 -0
- autoassembler/__init__.py +537 -0
- autoassembler/_custom/__init__.py +56 -0
- autoassembler/_custom/assemblies.py +226 -0
- autoassembler/_custom/assemblies_api.py +188 -0
- autoassembler/_custom/credentials.py +248 -0
- autoassembler/_custom/http.py +42 -0
- autoassembler/_custom/operations.py +258 -0
- autoassembler/_custom/planning.py +598 -0
- autoassembler/_custom/planning_api.py +225 -0
- autoassembler/_default_clients.py +32 -0
- autoassembler/_version.py +8 -0
- autoassembler/alpha/__init__.py +63 -0
- autoassembler/alpha/client.py +82 -0
- autoassembler/alpha/jobs/__init__.py +39 -0
- autoassembler/alpha/jobs/client.py +338 -0
- autoassembler/alpha/jobs/raw_client.py +641 -0
- autoassembler/alpha/jobs/types/__init__.py +42 -0
- autoassembler/alpha/jobs/types/cancel_job_jobs_response.py +12 -0
- autoassembler/alpha/jobs/types/list_jobs_jobs_response.py +30 -0
- autoassembler/alpha/jobs/types/list_jobs_jobs_response_pagination.py +22 -0
- autoassembler/alpha/jobs/types/retry_job_jobs_response.py +16 -0
- autoassembler/alpha/planning/__init__.py +49 -0
- autoassembler/alpha/planning/client.py +201 -0
- autoassembler/alpha/planning/raw_client.py +268 -0
- autoassembler/alpha/planning/types/__init__.py +47 -0
- autoassembler/alpha/planning/types/apply_ops_planning_request_namespace.py +5 -0
- autoassembler/alpha/planning/types/apply_ops_planning_request_ops_item.py +13 -0
- autoassembler/alpha/planning/types/apply_ops_planning_request_ops_item_op.py +58 -0
- autoassembler/alpha/planning/types/apply_ops_planning_response.py +13 -0
- autoassembler/alpha/raw_client.py +13 -0
- autoassembler/assemblies/__init__.py +73 -0
- autoassembler/assemblies/client.py +1177 -0
- autoassembler/assemblies/raw_client.py +1557 -0
- autoassembler/assemblies/types/__init__.py +71 -0
- autoassembler/assemblies/types/delete_assembly_response.py +12 -0
- autoassembler/assemblies/types/download_assembly_cad_request_namespace.py +5 -0
- autoassembler/assemblies/types/get_assembly_info_request_namespace.py +5 -0
- autoassembler/assemblies/types/get_status_request_namespace.py +5 -0
- autoassembler/assemblies/types/get_status_response.py +16 -0
- autoassembler/assemblies/types/get_status_response_progress.py +13 -0
- autoassembler/assemblies/types/get_status_response_status.py +7 -0
- autoassembler/assemblies/types/get_structure_request_namespace.py +5 -0
- autoassembler/assemblies/types/list_assembly_versions_request_namespace.py +5 -0
- autoassembler/assemblies/types/list_connections_request_namespace.py +5 -0
- autoassembler/assemblies/types/process_request_namespace.py +5 -0
- autoassembler/assemblies/types/update_assembly_info_request_namespace.py +5 -0
- autoassembler/auth/__init__.py +34 -0
- autoassembler/auth/client.py +282 -0
- autoassembler/auth/raw_client.py +413 -0
- autoassembler/auth/types/__init__.py +36 -0
- autoassembler/auth/types/create_access_token_request_grant_type.py +7 -0
- autoassembler/base_client.py +328 -0
- autoassembler/client.py +262 -0
- autoassembler/core/__init__.py +127 -0
- autoassembler/core/api_error.py +23 -0
- autoassembler/core/client_wrapper.py +147 -0
- autoassembler/core/datetime_utils.py +70 -0
- autoassembler/core/file.py +67 -0
- autoassembler/core/force_multipart.py +18 -0
- autoassembler/core/http_client.py +965 -0
- autoassembler/core/http_response.py +63 -0
- autoassembler/core/http_sse/__init__.py +42 -0
- autoassembler/core/http_sse/_api.py +455 -0
- autoassembler/core/http_sse/_decoders.py +74 -0
- autoassembler/core/http_sse/_exceptions.py +7 -0
- autoassembler/core/http_sse/_models.py +17 -0
- autoassembler/core/jsonable_encoder.py +133 -0
- autoassembler/core/logging.py +107 -0
- autoassembler/core/parse_error.py +36 -0
- autoassembler/core/pydantic_utilities.py +486 -0
- autoassembler/core/query_encoder.py +58 -0
- autoassembler/core/remove_none_from_dict.py +11 -0
- autoassembler/core/request_options.py +40 -0
- autoassembler/core/serialization.py +347 -0
- autoassembler/environment.py +7 -0
- autoassembler/errors/__init__.py +56 -0
- autoassembler/errors/bad_request_error.py +10 -0
- autoassembler/errors/conflict_error.py +10 -0
- autoassembler/errors/forbidden_error.py +11 -0
- autoassembler/errors/internal_server_error.py +11 -0
- autoassembler/errors/not_found_error.py +11 -0
- autoassembler/errors/unauthorized_error.py +10 -0
- autoassembler/errors/unprocessable_entity_error.py +11 -0
- autoassembler/operation.py +196 -0
- autoassembler/operations/__init__.py +4 -0
- autoassembler/operations/client.py +209 -0
- autoassembler/operations/raw_client.py +343 -0
- autoassembler/planning/__init__.py +70 -0
- autoassembler/planning/client.py +1174 -0
- autoassembler/planning/raw_client.py +1349 -0
- autoassembler/planning/types/__init__.py +68 -0
- autoassembler/planning/types/adapt_request_namespace.py +5 -0
- autoassembler/planning/types/create_mpp_request_body.py +8 -0
- autoassembler/planning/types/create_mpp_request_namespace.py +5 -0
- autoassembler/planning/types/delete_mpp_request_namespace.py +5 -0
- autoassembler/planning/types/delete_mpp_response.py +12 -0
- autoassembler/planning/types/evaluate_dfa_request_namespace.py +5 -0
- autoassembler/planning/types/get_mpp_request_namespace.py +5 -0
- autoassembler/planning/types/get_mpp_response.py +27 -0
- autoassembler/planning/types/list_mpps_request_namespace.py +5 -0
- autoassembler/planning/types/plan_request_namespace.py +5 -0
- autoassembler/planning/types/validate_request_namespace.py +5 -0
- autoassembler/py.typed +0 -0
- autoassembler/sessions/__init__.py +4 -0
- autoassembler/sessions/client.py +102 -0
- autoassembler/sessions/raw_client.py +126 -0
- autoassembler/types/__init__.py +344 -0
- autoassembler/types/access_token_response.py +14 -0
- autoassembler/types/active_session.py +25 -0
- autoassembler/types/active_session_namespace.py +5 -0
- autoassembler/types/adapt_mpp_accepted.py +26 -0
- autoassembler/types/assembly.py +30 -0
- autoassembler/types/assembly_connection.py +21 -0
- autoassembler/types/assembly_connection_relationship.py +5 -0
- autoassembler/types/assembly_connections_response.py +13 -0
- autoassembler/types/assembly_diff_metadata.py +35 -0
- autoassembler/types/assembly_diff_response.py +34 -0
- autoassembler/types/assembly_info.py +36 -0
- autoassembler/types/assembly_json_response.py +15 -0
- autoassembler/types/assembly_process_metadata.py +32 -0
- autoassembler/types/assembly_process_response.py +18 -0
- autoassembler/types/assembly_search_hit.py +31 -0
- autoassembler/types/assembly_version_summary.py +27 -0
- autoassembler/types/conflict_error_body.py +19 -0
- autoassembler/types/conflict_error_body_error.py +5 -0
- autoassembler/types/create_mpp_request.py +13 -0
- autoassembler/types/device_authorization_response.py +17 -0
- autoassembler/types/diff_accepted.py +42 -0
- autoassembler/types/diff_context_node.py +20 -0
- autoassembler/types/diff_details.py +73 -0
- autoassembler/types/diff_error_response.py +38 -0
- autoassembler/types/diff_flags.py +74 -0
- autoassembler/types/diff_ml_semantics.py +55 -0
- autoassembler/types/diff_node.py +26 -0
- autoassembler/types/diff_node_pair_with_parts.py +90 -0
- autoassembler/types/diff_node_with_parent.py +15 -0
- autoassembler/types/diff_reference_target_nodes.py +25 -0
- autoassembler/types/diff_report.py +24 -0
- autoassembler/types/diff_rigid_alignment.py +30 -0
- autoassembler/types/diff_summary.py +121 -0
- autoassembler/types/diff_summary_assembly_labels.py +44 -0
- autoassembler/types/diff_summary_geometric_diffs.py +24 -0
- autoassembler/types/diff_summary_persistent_edges_congruence.py +24 -0
- autoassembler/types/diff_summary_persistent_edges_congruence_pose.py +24 -0
- autoassembler/types/diff_summary_persistent_nodes_congruence.py +24 -0
- autoassembler/types/diff_summary_persistent_nodes_congruence_pose.py +24 -0
- autoassembler/types/diff_summary_total_parts.py +24 -0
- autoassembler/types/diff_swap.py +65 -0
- autoassembler/types/diff_swap_confidence.py +5 -0
- autoassembler/types/diff_swap_group.py +92 -0
- autoassembler/types/diff_validation_issue.py +38 -0
- autoassembler/types/diff_validation_issue_severity.py +5 -0
- autoassembler/types/diff_validation_result.py +35 -0
- autoassembler/types/diff_warning.py +79 -0
- autoassembler/types/diff_warning_reason.py +18 -0
- autoassembler/types/diff_warning_severity.py +5 -0
- autoassembler/types/error_response.py +30 -0
- autoassembler/types/filter.py +19 -0
- autoassembler/types/filter_field.py +7 -0
- autoassembler/types/filter_operator.py +5 -0
- autoassembler/types/job.py +123 -0
- autoassembler/types/job_progress.py +24 -0
- autoassembler/types/job_status.py +5 -0
- autoassembler/types/list_operations_response.py +25 -0
- autoassembler/types/manufacturing_process_plan.py +57 -0
- autoassembler/types/mpp_adapt_metadata.py +48 -0
- autoassembler/types/mpp_adapt_response.py +22 -0
- autoassembler/types/mpp_evaluate_dfa_metadata.py +47 -0
- autoassembler/types/mpp_evaluate_dfa_response.py +22 -0
- autoassembler/types/mpp_plan_metadata.py +47 -0
- autoassembler/types/mpp_plan_response.py +22 -0
- autoassembler/types/mpp_summary.py +20 -0
- autoassembler/types/mpp_validate_metadata.py +47 -0
- autoassembler/types/mpp_validate_response.py +22 -0
- autoassembler/types/o_auth_error_response.py +14 -0
- autoassembler/types/o_auth_error_response_error.py +18 -0
- autoassembler/types/operation.py +27 -0
- autoassembler/types/operation_error.py +21 -0
- autoassembler/types/operation_metadata.py +148 -0
- autoassembler/types/operation_response.py +94 -0
- autoassembler/types/process_assembly_accepted.py +14 -0
- autoassembler/types/process_assembly_response.py +55 -0
- autoassembler/types/process_assembly_skipped.py +14 -0
- autoassembler/types/search_assemblies_response.py +14 -0
- autoassembler/types/seq_plan_accepted.py +24 -0
- autoassembler/types/sever.py +33 -0
- autoassembler/types/sever_kind.py +5 -0
- autoassembler/types/sever_source.py +5 -0
- autoassembler/types/sort.py +8 -0
- autoassembler/types/upload_response.py +19 -0
- autoassembler/types/user_info.py +19 -0
- autoassembler/types/user_info_response.py +23 -0
- autoassembler/types/user_info_response_providers.py +14 -0
- autoassembler-0.3.1.dist-info/METADATA +209 -0
- autoassembler-0.3.1.dist-info/RECORD +198 -0
- autoassembler-0.3.1.dist-info/WHEEL +4 -0
- autoassembler-0.3.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
import typing_extensions
|
|
8
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
9
|
+
from ..core.serialization import FieldMetadata
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AssemblySearchHit(UniversalBaseModel):
|
|
13
|
+
id: typing_extensions.Annotated[
|
|
14
|
+
typing.Optional[str], FieldMetadata(alias="_id"), pydantic.Field(alias="_id", default=None)
|
|
15
|
+
]
|
|
16
|
+
is_public: typing_extensions.Annotated[
|
|
17
|
+
typing.Optional[bool], FieldMetadata(alias="isPublic"), pydantic.Field(alias="isPublic", default=None)
|
|
18
|
+
]
|
|
19
|
+
name: typing.Optional[str] = None
|
|
20
|
+
path: typing.Optional[str] = None
|
|
21
|
+
uploaded_at: typing_extensions.Annotated[
|
|
22
|
+
typing.Optional[dt.datetime],
|
|
23
|
+
FieldMetadata(alias="uploadedAt"),
|
|
24
|
+
pydantic.Field(alias="uploadedAt", default=None),
|
|
25
|
+
]
|
|
26
|
+
uploaded_by: typing_extensions.Annotated[
|
|
27
|
+
typing.Optional[str], FieldMetadata(alias="uploadedBy"), pydantic.Field(alias="uploadedBy", default=None)
|
|
28
|
+
]
|
|
29
|
+
route: typing.Optional[str] = None
|
|
30
|
+
|
|
31
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
import typing_extensions
|
|
8
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
9
|
+
from ..core.serialization import FieldMetadata
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AssemblyVersionSummary(UniversalBaseModel):
|
|
13
|
+
id: typing_extensions.Annotated[
|
|
14
|
+
typing.Optional[str], FieldMetadata(alias="_id"), pydantic.Field(alias="_id", default=None)
|
|
15
|
+
]
|
|
16
|
+
name: typing.Optional[str] = None
|
|
17
|
+
route: typing.Optional[str] = None
|
|
18
|
+
uploaded_at: typing_extensions.Annotated[
|
|
19
|
+
typing.Optional[dt.datetime],
|
|
20
|
+
FieldMetadata(alias="uploadedAt"),
|
|
21
|
+
pydantic.Field(alias="uploadedAt", default=None),
|
|
22
|
+
]
|
|
23
|
+
version_name: typing_extensions.Annotated[
|
|
24
|
+
typing.Optional[str], FieldMetadata(alias="versionName"), pydantic.Field(alias="versionName", default=None)
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
from .conflict_error_body_error import ConflictErrorBodyError
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ConflictErrorBody(UniversalBaseModel):
|
|
13
|
+
error: ConflictErrorBodyError
|
|
14
|
+
station_ids: typing_extensions.Annotated[
|
|
15
|
+
typing.List[str], FieldMetadata(alias="stationIds"), pydantic.Field(alias="stationIds")
|
|
16
|
+
]
|
|
17
|
+
message: typing.Optional[str] = None
|
|
18
|
+
|
|
19
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CreateMppRequest(UniversalBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
description: typing.Optional[str] = None
|
|
12
|
+
|
|
13
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DeviceAuthorizationResponse(UniversalBaseModel):
|
|
10
|
+
device_code: str
|
|
11
|
+
expires_in: int
|
|
12
|
+
interval: int
|
|
13
|
+
user_code: str
|
|
14
|
+
verification_uri: str
|
|
15
|
+
verification_uri_complete: str
|
|
16
|
+
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.serialization import FieldMetadata
|
|
8
|
+
from .operation import Operation
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DiffAccepted(Operation):
|
|
12
|
+
"""
|
|
13
|
+
The operation tracking the diff (AIP-151): poll `GET /api/v4/operations/{id}` until it is `done`, then fetch `resultUrl`. A cached diff comes back already `done`. `key` is the diff's job key, which the operation replaces, and will be removed.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
key: str = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
The diff's job key, for `GET /api/v4/jobs/{key}`.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
result_url: typing_extensions.Annotated[
|
|
22
|
+
str,
|
|
23
|
+
FieldMetadata(alias="resultUrl"),
|
|
24
|
+
pydantic.Field(alias="resultUrl", description="Where the diff report is served once the operation is `done`."),
|
|
25
|
+
]
|
|
26
|
+
"""
|
|
27
|
+
Where the diff report is served once the operation is `done`.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
viewer_url: typing_extensions.Annotated[
|
|
31
|
+
str,
|
|
32
|
+
FieldMetadata(alias="viewerUrl"),
|
|
33
|
+
pydantic.Field(
|
|
34
|
+
alias="viewerUrl",
|
|
35
|
+
description="Browser URL for the standalone assembly diff page. Includes the target route, compare route, and diff job key.",
|
|
36
|
+
),
|
|
37
|
+
]
|
|
38
|
+
"""
|
|
39
|
+
Browser URL for the standalone assembly diff page. Includes the target route, compare route, and diff job key.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DiffContextNode(UniversalBaseModel):
|
|
10
|
+
node: str = pydantic.Field()
|
|
11
|
+
"""
|
|
12
|
+
Part occurrence ID in the assembly tree.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
part: str = pydantic.Field()
|
|
16
|
+
"""
|
|
17
|
+
Part identifier or display name associated with the occurrence.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
from .diff_flags import DiffFlags
|
|
10
|
+
from .diff_node_pair_with_parts import DiffNodePairWithParts
|
|
11
|
+
from .diff_reference_target_nodes import DiffReferenceTargetNodes
|
|
12
|
+
from .diff_rigid_alignment import DiffRigidAlignment
|
|
13
|
+
from .diff_swap import DiffSwap
|
|
14
|
+
from .diff_swap_group import DiffSwapGroup
|
|
15
|
+
from .diff_validation_result import DiffValidationResult
|
|
16
|
+
from .diff_warning import DiffWarning
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class DiffDetails(UniversalBaseModel):
|
|
20
|
+
"""
|
|
21
|
+
Parts and part pairs that explain the summary counts.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
geom_diff_nodes: typing_extensions.Annotated[
|
|
25
|
+
typing.Optional[DiffReferenceTargetNodes],
|
|
26
|
+
FieldMetadata(alias="geomDiffNodes"),
|
|
27
|
+
pydantic.Field(alias="geomDiffNodes", default=None),
|
|
28
|
+
]
|
|
29
|
+
swaps: typing.Optional[typing.List[DiffSwap]] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
All replacement, swap, and rename candidates, including high-, medium-, and low-confidence matches.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
swap_groups: typing_extensions.Annotated[
|
|
35
|
+
typing.Optional[typing.List[DiffSwapGroup]],
|
|
36
|
+
FieldMetadata(alias="swapGroups"),
|
|
37
|
+
pydantic.Field(
|
|
38
|
+
alias="swapGroups",
|
|
39
|
+
default=None,
|
|
40
|
+
description="Grouped replacement candidates, including asymmetric many-to-many cases.",
|
|
41
|
+
),
|
|
42
|
+
]
|
|
43
|
+
"""
|
|
44
|
+
Grouped replacement candidates, including asymmetric many-to-many cases.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
moved_pose_pairs: typing_extensions.Annotated[
|
|
48
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
49
|
+
FieldMetadata(alias="movedPosePairs"),
|
|
50
|
+
pydantic.Field(
|
|
51
|
+
alias="movedPosePairs",
|
|
52
|
+
default=None,
|
|
53
|
+
description="Matching parts whose position or orientation changed between assemblies.",
|
|
54
|
+
),
|
|
55
|
+
]
|
|
56
|
+
"""
|
|
57
|
+
Matching parts whose position or orientation changed between assemblies.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
flags: typing.Optional[DiffFlags] = None
|
|
61
|
+
warnings: typing.Optional[typing.List[DiffWarning]] = pydantic.Field(default=None)
|
|
62
|
+
"""
|
|
63
|
+
Non-swap analysis or validation findings surfaced for review.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
validation: typing.Optional[DiffValidationResult] = None
|
|
67
|
+
rigid_alignment_ref_to_tgt: typing_extensions.Annotated[
|
|
68
|
+
typing.Optional[DiffRigidAlignment],
|
|
69
|
+
FieldMetadata(alias="rigidAlignmentRefToTgt"),
|
|
70
|
+
pydantic.Field(alias="rigidAlignmentRefToTgt", default=None),
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DiffErrorResponse(UniversalBaseModel):
|
|
12
|
+
error: typing.Optional[str] = pydantic.Field(default=None)
|
|
13
|
+
"""
|
|
14
|
+
Machine-readable error code or message.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
message: typing.Optional[str] = pydantic.Field(default=None)
|
|
18
|
+
"""
|
|
19
|
+
User-facing explanation, when available.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
details: typing.Optional[str] = pydantic.Field(default=None)
|
|
23
|
+
"""
|
|
24
|
+
Additional remediation guidance, when available.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
assembly_id: typing_extensions.Annotated[
|
|
28
|
+
typing.Optional[str],
|
|
29
|
+
FieldMetadata(alias="assemblyId"),
|
|
30
|
+
pydantic.Field(
|
|
31
|
+
alias="assemblyId", default=None, description="Assembly ID related to the error, when available."
|
|
32
|
+
),
|
|
33
|
+
]
|
|
34
|
+
"""
|
|
35
|
+
Assembly ID related to the error, when available.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
from .diff_node_pair_with_parts import DiffNodePairWithParts
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DiffFlags(UniversalBaseModel):
|
|
13
|
+
"""
|
|
14
|
+
Supporting pair classifications for explanations, filters, and diagnostics.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
same_geom_diff_name_pairs: typing_extensions.Annotated[
|
|
18
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
19
|
+
FieldMetadata(alias="sameGeomDiffNamePairs"),
|
|
20
|
+
pydantic.Field(alias="sameGeomDiffNamePairs", default=None, description="Matching parts whose names changed."),
|
|
21
|
+
]
|
|
22
|
+
"""
|
|
23
|
+
Matching parts whose names changed.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
same_geom_pose_diff_name_pairs: typing_extensions.Annotated[
|
|
27
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
28
|
+
FieldMetadata(alias="sameGeomPoseDiffNamePairs"),
|
|
29
|
+
pydantic.Field(
|
|
30
|
+
alias="sameGeomPoseDiffNamePairs",
|
|
31
|
+
default=None,
|
|
32
|
+
description="Matching parts whose names changed while their placement stayed the same.",
|
|
33
|
+
),
|
|
34
|
+
]
|
|
35
|
+
"""
|
|
36
|
+
Matching parts whose names changed while their placement stayed the same.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
same_name_congruent_diff_pose_pairs: typing_extensions.Annotated[
|
|
40
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
41
|
+
FieldMetadata(alias="sameNameCongruentDiffPosePairs"),
|
|
42
|
+
pydantic.Field(
|
|
43
|
+
alias="sameNameCongruentDiffPosePairs",
|
|
44
|
+
default=None,
|
|
45
|
+
description="Matching parts with the same name whose placement changed.",
|
|
46
|
+
),
|
|
47
|
+
]
|
|
48
|
+
"""
|
|
49
|
+
Matching parts with the same name whose placement changed.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
part_revision: typing_extensions.Annotated[
|
|
53
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
54
|
+
FieldMetadata(alias="partRevision"),
|
|
55
|
+
pydantic.Field(alias="partRevision", default=None, description="Parts with the same name but different shape."),
|
|
56
|
+
]
|
|
57
|
+
"""
|
|
58
|
+
Parts with the same name but different shape.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
unchanged_pairs: typing_extensions.Annotated[
|
|
62
|
+
typing.Optional[typing.List[DiffNodePairWithParts]],
|
|
63
|
+
FieldMetadata(alias="unchangedPairs"),
|
|
64
|
+
pydantic.Field(
|
|
65
|
+
alias="unchangedPairs",
|
|
66
|
+
default=None,
|
|
67
|
+
description="Parts that appear unchanged between the baseline and target assemblies. IDs may or may not differ.",
|
|
68
|
+
),
|
|
69
|
+
]
|
|
70
|
+
"""
|
|
71
|
+
Parts that appear unchanged between the baseline and target assemblies. IDs may or may not differ.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DiffMlSemantics(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
ML and volume signals used when evaluating a replacement candidate.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
ml_classes_reference: typing_extensions.Annotated[
|
|
17
|
+
typing.Optional[typing.List[str]],
|
|
18
|
+
FieldMetadata(alias="mlClassesReference"),
|
|
19
|
+
pydantic.Field(alias="mlClassesReference", default=None),
|
|
20
|
+
]
|
|
21
|
+
ml_classes_target: typing_extensions.Annotated[
|
|
22
|
+
typing.Optional[typing.List[str]],
|
|
23
|
+
FieldMetadata(alias="mlClassesTarget"),
|
|
24
|
+
pydantic.Field(alias="mlClassesTarget", default=None),
|
|
25
|
+
]
|
|
26
|
+
ml_classes_match: typing_extensions.Annotated[
|
|
27
|
+
typing.Optional[bool],
|
|
28
|
+
FieldMetadata(alias="mlClassesMatch"),
|
|
29
|
+
pydantic.Field(alias="mlClassesMatch", default=None),
|
|
30
|
+
]
|
|
31
|
+
ml_embedding_hint_bucket_reference: typing_extensions.Annotated[
|
|
32
|
+
typing.Optional[str],
|
|
33
|
+
FieldMetadata(alias="mlEmbeddingHintBucketReference"),
|
|
34
|
+
pydantic.Field(alias="mlEmbeddingHintBucketReference", default=None),
|
|
35
|
+
]
|
|
36
|
+
ml_embedding_hint_bucket_target: typing_extensions.Annotated[
|
|
37
|
+
typing.Optional[str],
|
|
38
|
+
FieldMetadata(alias="mlEmbeddingHintBucketTarget"),
|
|
39
|
+
pydantic.Field(alias="mlEmbeddingHintBucketTarget", default=None),
|
|
40
|
+
]
|
|
41
|
+
ml_embedding_hint_bucket_match: typing_extensions.Annotated[
|
|
42
|
+
typing.Optional[bool],
|
|
43
|
+
FieldMetadata(alias="mlEmbeddingHintBucketMatch"),
|
|
44
|
+
pydantic.Field(alias="mlEmbeddingHintBucketMatch", default=None),
|
|
45
|
+
]
|
|
46
|
+
volume_ratio: typing_extensions.Annotated[
|
|
47
|
+
typing.Optional[float], FieldMetadata(alias="volumeRatio"), pydantic.Field(alias="volumeRatio", default=None)
|
|
48
|
+
]
|
|
49
|
+
volume_ratio_min: typing_extensions.Annotated[
|
|
50
|
+
typing.Optional[float],
|
|
51
|
+
FieldMetadata(alias="volumeRatioMin"),
|
|
52
|
+
pydantic.Field(alias="volumeRatioMin", default=None),
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
from .diff_context_node import DiffContextNode
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DiffNode(UniversalBaseModel):
|
|
11
|
+
node: str = pydantic.Field()
|
|
12
|
+
"""
|
|
13
|
+
Part occurrence ID in the assembly tree.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
part: str = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
Part identifier or display name associated with the occurrence.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
context: typing.Optional[typing.List[DiffContextNode]] = pydantic.Field(default=None)
|
|
22
|
+
"""
|
|
23
|
+
Surviving parts that define this added or removed part's liaisons.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
from .diff_ml_semantics import DiffMlSemantics
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DiffNodePairWithParts(UniversalBaseModel):
|
|
13
|
+
reference_node: typing_extensions.Annotated[
|
|
14
|
+
typing.Optional[str],
|
|
15
|
+
FieldMetadata(alias="referenceNode"),
|
|
16
|
+
pydantic.Field(alias="referenceNode", default=None, description="Node identifier in the reference assembly."),
|
|
17
|
+
]
|
|
18
|
+
"""
|
|
19
|
+
Node identifier in the reference assembly.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
target_node: typing_extensions.Annotated[
|
|
23
|
+
typing.Optional[str],
|
|
24
|
+
FieldMetadata(alias="targetNode"),
|
|
25
|
+
pydantic.Field(alias="targetNode", default=None, description="Node identifier in the target assembly."),
|
|
26
|
+
]
|
|
27
|
+
"""
|
|
28
|
+
Node identifier in the target assembly.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
reference_parent: typing_extensions.Annotated[
|
|
32
|
+
typing.Optional[str],
|
|
33
|
+
FieldMetadata(alias="referenceParent"),
|
|
34
|
+
pydantic.Field(
|
|
35
|
+
alias="referenceParent", default=None, description="Parent node identifier in the reference assembly."
|
|
36
|
+
),
|
|
37
|
+
]
|
|
38
|
+
"""
|
|
39
|
+
Parent node identifier in the reference assembly.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
target_parent: typing_extensions.Annotated[
|
|
43
|
+
typing.Optional[str],
|
|
44
|
+
FieldMetadata(alias="targetParent"),
|
|
45
|
+
pydantic.Field(
|
|
46
|
+
alias="targetParent", default=None, description="Parent node identifier in the target assembly."
|
|
47
|
+
),
|
|
48
|
+
]
|
|
49
|
+
"""
|
|
50
|
+
Parent node identifier in the target assembly.
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
reference_part: typing_extensions.Annotated[
|
|
54
|
+
typing.Optional[str],
|
|
55
|
+
FieldMetadata(alias="referencePart"),
|
|
56
|
+
pydantic.Field(
|
|
57
|
+
alias="referencePart", default=None, description="Part identifier or part name in the reference assembly."
|
|
58
|
+
),
|
|
59
|
+
]
|
|
60
|
+
"""
|
|
61
|
+
Part identifier or part name in the reference assembly.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
target_part: typing_extensions.Annotated[
|
|
65
|
+
typing.Optional[str],
|
|
66
|
+
FieldMetadata(alias="targetPart"),
|
|
67
|
+
pydantic.Field(
|
|
68
|
+
alias="targetPart", default=None, description="Part identifier or part name in the target assembly."
|
|
69
|
+
),
|
|
70
|
+
]
|
|
71
|
+
"""
|
|
72
|
+
Part identifier or part name in the target assembly.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
identity_score: typing_extensions.Annotated[
|
|
76
|
+
typing.Optional[float],
|
|
77
|
+
FieldMetadata(alias="identityScore"),
|
|
78
|
+
pydantic.Field(alias="identityScore", default=None, description="embedding_similarity × volume_ratio"),
|
|
79
|
+
]
|
|
80
|
+
"""
|
|
81
|
+
embedding_similarity × volume_ratio
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
ml_semantics: typing_extensions.Annotated[
|
|
85
|
+
typing.Optional[DiffMlSemantics],
|
|
86
|
+
FieldMetadata(alias="mlSemantics"),
|
|
87
|
+
pydantic.Field(alias="mlSemantics", default=None),
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from .diff_node import DiffNode
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DiffNodeWithParent(DiffNode):
|
|
10
|
+
parent: typing.Optional[str] = pydantic.Field(default=None)
|
|
11
|
+
"""
|
|
12
|
+
Parent node identifier in the assembly tree.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
from .diff_node import DiffNode
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DiffReferenceTargetNodes(UniversalBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Parts present only in the baseline or only in the target assembly.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
reference: typing.Optional[typing.List[DiffNode]] = pydantic.Field(default=None)
|
|
16
|
+
"""
|
|
17
|
+
Parts present only in the baseline assembly.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
target: typing.Optional[typing.List[DiffNode]] = pydantic.Field(default=None)
|
|
21
|
+
"""
|
|
22
|
+
Parts present only in the target assembly.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
7
|
+
from .diff_details import DiffDetails
|
|
8
|
+
from .diff_summary import DiffSummary
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DiffReport(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Structured comparison between a baseline assembly and a target assembly. `summary` provides counts for dashboards and badges; `details` identifies the parts and part pairs behind those counts.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
version: int = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
Diff response format version.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
summary: DiffSummary
|
|
22
|
+
details: DiffDetails
|
|
23
|
+
|
|
24
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DiffRigidAlignment(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Rigid transform from reference coordinates to target coordinates.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
r: typing_extensions.Annotated[
|
|
17
|
+
typing.Optional[typing.List[typing.List[float]]],
|
|
18
|
+
FieldMetadata(alias="R"),
|
|
19
|
+
pydantic.Field(alias="R", default=None, description="3x3 rotation matrix."),
|
|
20
|
+
]
|
|
21
|
+
"""
|
|
22
|
+
3x3 rotation matrix.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
t: typing.Optional[typing.List[float]] = pydantic.Field(default=None)
|
|
26
|
+
"""
|
|
27
|
+
Translation vector.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
|