holder-python 0.2.5__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.
- holder/__init__.py +21 -0
- holder/client.py +182 -0
- holder/collections.py +70 -0
- holder/events.py +238 -0
- holder/exceptions.py +35 -0
- holder/generated/__init__.py +8 -0
- holder/generated/api/__init__.py +1 -0
- holder/generated/api/default/__init__.py +1 -0
- holder/generated/api/default/delete_ai_messages_message_id.py +166 -0
- holder/generated/api/default/delete_ai_messages_message_id_links.py +205 -0
- holder/generated/api/default/delete_ai_providers_credentials_provider.py +168 -0
- holder/generated/api/default/delete_ai_threads_thread_id.py +166 -0
- holder/generated/api/default/delete_cards_card_id.py +225 -0
- holder/generated/api/default/delete_cards_card_id_links.py +205 -0
- holder/generated/api/default/delete_cards_card_id_milestones_milestone_id.py +175 -0
- holder/generated/api/default/delete_cards_card_id_resources.py +197 -0
- holder/generated/api/default/delete_cards_card_id_tags.py +197 -0
- holder/generated/api/default/delete_locations_location_id.py +105 -0
- holder/generated/api/default/delete_locations_location_id_binding.py +102 -0
- holder/generated/api/default/delete_projects_project_id.py +187 -0
- holder/generated/api/default/delete_resources_resource_id.py +161 -0
- holder/generated/api/default/delete_trash.py +181 -0
- holder/generated/api/default/delete_trash_type_id.py +175 -0
- holder/generated/api/default/get_ai_capabilities.py +166 -0
- holder/generated/api/default/get_ai_catalog_json.py +134 -0
- holder/generated/api/default/get_ai_catalog_yaml.py +132 -0
- holder/generated/api/default/get_ai_local_models_config.py +134 -0
- holder/generated/api/default/get_ai_messages.py +186 -0
- holder/generated/api/default/get_ai_messages_message_id.py +166 -0
- holder/generated/api/default/get_ai_messages_message_id_backlinks.py +194 -0
- holder/generated/api/default/get_ai_messages_message_id_links.py +194 -0
- holder/generated/api/default/get_ai_providers_catalog.py +139 -0
- holder/generated/api/default/get_ai_providers_credentials.py +136 -0
- holder/generated/api/default/get_ai_runner_pull_job_id.py +171 -0
- holder/generated/api/default/get_ai_runner_pull_job_id_events.py +218 -0
- holder/generated/api/default/get_ai_runs.py +186 -0
- holder/generated/api/default/get_ai_runs_run_id.py +166 -0
- holder/generated/api/default/get_ai_runs_run_id_events.py +213 -0
- holder/generated/api/default/get_ai_status.py +134 -0
- holder/generated/api/default/get_ai_threads.py +171 -0
- holder/generated/api/default/get_ai_threads_thread_id.py +166 -0
- holder/generated/api/default/get_calendar.py +221 -0
- holder/generated/api/default/get_cards.py +286 -0
- holder/generated/api/default/get_cards_card_id.py +166 -0
- holder/generated/api/default/get_cards_card_id_backlinks.py +194 -0
- holder/generated/api/default/get_cards_card_id_links.py +194 -0
- holder/generated/api/default/get_cards_card_id_milestones.py +173 -0
- holder/generated/api/default/get_cards_context.py +226 -0
- holder/generated/api/default/get_event_cursor.py +198 -0
- holder/generated/api/default/get_git_providers_json.py +134 -0
- holder/generated/api/default/get_git_providers_yaml.py +132 -0
- holder/generated/api/default/get_health.py +134 -0
- holder/generated/api/default/get_imports_job_id.py +159 -0
- holder/generated/api/default/get_locations.py +160 -0
- holder/generated/api/default/get_locations_location_id.py +157 -0
- holder/generated/api/default/get_openapi_yaml.py +132 -0
- holder/generated/api/default/get_ping.py +128 -0
- holder/generated/api/default/get_projects.py +261 -0
- holder/generated/api/default/get_projects_project_id.py +166 -0
- holder/generated/api/default/get_projects_project_id_cards.py +321 -0
- holder/generated/api/default/get_projects_project_id_encryption_check.py +166 -0
- holder/generated/api/default/get_projects_project_id_git_sync_status.py +171 -0
- holder/generated/api/default/get_projects_project_id_history.py +246 -0
- holder/generated/api/default/get_projects_project_id_history_cards_card_id.py +243 -0
- holder/generated/api/default/get_projects_project_id_history_cards_card_id_compare.py +286 -0
- holder/generated/api/default/get_projects_project_id_history_cards_card_id_snapshot.py +225 -0
- holder/generated/api/default/get_projects_project_id_tags.py +171 -0
- holder/generated/api/default/get_resources.py +242 -0
- holder/generated/api/default/get_resources_resource_id.py +161 -0
- holder/generated/api/default/get_resources_resource_id_assets_asset_id_content.py +247 -0
- holder/generated/api/default/get_search_ai.py +216 -0
- holder/generated/api/default/get_search_cards.py +216 -0
- holder/generated/api/default/get_trash.py +181 -0
- holder/generated/api/default/patch_ai_messages_message_id.py +192 -0
- holder/generated/api/default/patch_ai_threads_thread_id.py +192 -0
- holder/generated/api/default/patch_cards_card_id.py +192 -0
- holder/generated/api/default/patch_cards_card_id_milestones_milestone_id.py +214 -0
- holder/generated/api/default/patch_locations_location_id.py +117 -0
- holder/generated/api/default/patch_projects_project_id.py +192 -0
- holder/generated/api/default/patch_resources_resource_id.py +192 -0
- holder/generated/api/default/post_ai_messages.py +176 -0
- holder/generated/api/default/post_ai_messages_capture.py +181 -0
- holder/generated/api/default/post_ai_messages_message_id_links.py +192 -0
- holder/generated/api/default/post_ai_messages_message_id_restore.py +166 -0
- holder/generated/api/default/post_ai_runner_pull.py +181 -0
- holder/generated/api/default/post_ai_runner_retry.py +139 -0
- holder/generated/api/default/post_ai_runs.py +194 -0
- holder/generated/api/default/post_ai_threads.py +176 -0
- holder/generated/api/default/post_bye.py +166 -0
- holder/generated/api/default/post_card_references_resolve.py +181 -0
- holder/generated/api/default/post_cards.py +176 -0
- holder/generated/api/default/post_cards_card_id_links.py +192 -0
- holder/generated/api/default/post_cards_card_id_milestones.py +199 -0
- holder/generated/api/default/post_cards_card_id_move.py +222 -0
- holder/generated/api/default/post_cards_card_id_resources.py +197 -0
- holder/generated/api/default/post_cards_card_id_restore.py +186 -0
- holder/generated/api/default/post_cards_card_id_tags.py +197 -0
- holder/generated/api/default/post_imports.py +160 -0
- holder/generated/api/default/post_locations.py +160 -0
- holder/generated/api/default/post_locations_location_id_test.py +105 -0
- holder/generated/api/default/post_projects.py +171 -0
- holder/generated/api/default/post_projects_project_id_git_pull.py +211 -0
- holder/generated/api/default/post_projects_project_id_git_push.py +193 -0
- holder/generated/api/default/post_projects_project_id_git_sync.py +207 -0
- holder/generated/api/default/post_projects_project_id_git_test_remote.py +205 -0
- holder/generated/api/default/post_projects_project_id_history_cards_card_id_restore.py +240 -0
- holder/generated/api/default/post_projects_project_id_recovery_token_export.py +196 -0
- holder/generated/api/default/post_projects_project_id_recovery_token_import.py +196 -0
- holder/generated/api/default/post_projects_project_id_repair_hierarchy.py +240 -0
- holder/generated/api/default/post_rebuild.py +176 -0
- holder/generated/api/default/post_recovery_token_import.py +185 -0
- holder/generated/api/default/post_reindex.py +139 -0
- holder/generated/api/default/post_resources.py +176 -0
- holder/generated/api/default/put_ai_local_models_config.py +173 -0
- holder/generated/api/default/put_ai_providers_credentials.py +175 -0
- holder/generated/api/default/put_locations_location_id_binding.py +117 -0
- holder/generated/api/default/put_locations_preferred.py +107 -0
- holder/generated/api/default/stream_changes.py +256 -0
- holder/generated/client.py +280 -0
- holder/generated/errors.py +16 -0
- holder/generated/models/__init__.py +569 -0
- holder/generated/models/ai_local_model_config_data.py +111 -0
- holder/generated/models/ai_local_model_config_response.py +78 -0
- holder/generated/models/ai_local_model_config_update_request.py +134 -0
- holder/generated/models/ai_message.py +204 -0
- holder/generated/models/ai_message_capture_request.py +246 -0
- holder/generated/models/ai_message_capture_request_context_type_0.py +46 -0
- holder/generated/models/ai_message_capture_response.py +78 -0
- holder/generated/models/ai_message_capture_response_data.py +78 -0
- holder/generated/models/ai_message_create_request.py +186 -0
- holder/generated/models/ai_message_create_response.py +78 -0
- holder/generated/models/ai_message_create_response_data.py +62 -0
- holder/generated/models/ai_message_get_response.py +76 -0
- holder/generated/models/ai_message_list_response.py +84 -0
- holder/generated/models/ai_message_update_request.py +203 -0
- holder/generated/models/ai_message_update_response.py +78 -0
- holder/generated/models/ai_message_update_response_data.py +62 -0
- holder/generated/models/ai_provider_catalog_provider.py +265 -0
- holder/generated/models/ai_provider_catalog_provider_api_type_0.py +46 -0
- holder/generated/models/ai_provider_catalog_provider_auth_type_0.py +46 -0
- holder/generated/models/ai_provider_catalog_provider_models_item.py +46 -0
- holder/generated/models/ai_provider_catalog_response.py +78 -0
- holder/generated/models/ai_provider_catalog_response_data.py +100 -0
- holder/generated/models/ai_provider_credential.py +94 -0
- holder/generated/models/ai_provider_credential_delete_response.py +80 -0
- holder/generated/models/ai_provider_credential_delete_response_data.py +62 -0
- holder/generated/models/ai_provider_credential_upsert_request.py +92 -0
- holder/generated/models/ai_provider_credential_upsert_response.py +78 -0
- holder/generated/models/ai_provider_credentials_list_response.py +80 -0
- holder/generated/models/ai_provider_credentials_list_response_data.py +78 -0
- holder/generated/models/ai_run_create_request.py +133 -0
- holder/generated/models/ai_run_create_request_context.py +46 -0
- holder/generated/models/ai_run_event_data.py +146 -0
- holder/generated/models/ai_run_get_response.py +76 -0
- holder/generated/models/ai_run_item.py +328 -0
- holder/generated/models/ai_run_item_policy_trace_type_0.py +46 -0
- holder/generated/models/ai_run_list_response.py +84 -0
- holder/generated/models/ai_status_data.py +186 -0
- holder/generated/models/ai_status_pull_job.py +130 -0
- holder/generated/models/ai_status_response.py +76 -0
- holder/generated/models/ai_thread.py +116 -0
- holder/generated/models/ai_thread_create_request.py +119 -0
- holder/generated/models/ai_thread_create_response.py +78 -0
- holder/generated/models/ai_thread_create_response_data.py +62 -0
- holder/generated/models/ai_thread_get_response.py +76 -0
- holder/generated/models/ai_thread_list_response.py +84 -0
- holder/generated/models/ai_thread_patch_response.py +78 -0
- holder/generated/models/ai_thread_patch_response_data.py +62 -0
- holder/generated/models/ai_thread_update_request.py +104 -0
- holder/generated/models/asset_import_job.py +141 -0
- holder/generated/models/asset_import_job_response.py +76 -0
- holder/generated/models/asset_import_job_status.py +13 -0
- holder/generated/models/asset_import_request.py +86 -0
- holder/generated/models/asset_placement.py +96 -0
- holder/generated/models/asset_placement_encoding.py +9 -0
- holder/generated/models/bye_response.py +62 -0
- holder/generated/models/calendar_card_activity.py +86 -0
- holder/generated/models/card_context_breadcrumb.py +113 -0
- holder/generated/models/card_context_breadcrumb_type.py +9 -0
- holder/generated/models/card_context_card.py +161 -0
- holder/generated/models/card_context_data.py +124 -0
- holder/generated/models/card_context_data_project.py +70 -0
- holder/generated/models/card_context_response.py +76 -0
- holder/generated/models/card_create_request.py +147 -0
- holder/generated/models/card_create_response.py +78 -0
- holder/generated/models/card_create_response_data.py +70 -0
- holder/generated/models/card_data.py +160 -0
- holder/generated/models/card_get_response.py +76 -0
- holder/generated/models/card_history_author.py +70 -0
- holder/generated/models/card_history_comparison_data.py +110 -0
- holder/generated/models/card_history_comparison_response.py +78 -0
- holder/generated/models/card_history_diff_line.py +100 -0
- holder/generated/models/card_history_diff_line_origin.py +10 -0
- holder/generated/models/card_history_entry.py +172 -0
- holder/generated/models/card_history_entry_kind.py +16 -0
- holder/generated/models/card_history_entry_saves_item.py +94 -0
- holder/generated/models/card_history_page_data.py +114 -0
- holder/generated/models/card_history_page_response.py +76 -0
- holder/generated/models/card_history_restore_response.py +80 -0
- holder/generated/models/card_history_restore_response_data.py +108 -0
- holder/generated/models/card_history_snapshot_response.py +80 -0
- holder/generated/models/card_history_snapshot_response_data.py +76 -0
- holder/generated/models/card_history_version.py +86 -0
- holder/generated/models/card_link.py +116 -0
- holder/generated/models/card_link_create_request.py +111 -0
- holder/generated/models/card_link_create_response.py +76 -0
- holder/generated/models/card_link_delete_request.py +80 -0
- holder/generated/models/card_link_list_response.py +84 -0
- holder/generated/models/card_list_item.py +161 -0
- holder/generated/models/card_list_response.py +84 -0
- holder/generated/models/card_move_intent.py +15 -0
- holder/generated/models/card_move_request.py +134 -0
- holder/generated/models/card_move_response.py +76 -0
- holder/generated/models/card_move_result.py +114 -0
- holder/generated/models/card_page.py +90 -0
- holder/generated/models/card_page_item.py +170 -0
- holder/generated/models/card_page_response.py +76 -0
- holder/generated/models/card_patch_response.py +78 -0
- holder/generated/models/card_patch_response_data.py +62 -0
- holder/generated/models/card_reference_candidate.py +84 -0
- holder/generated/models/card_reference_resolve_data.py +129 -0
- holder/generated/models/card_reference_resolve_data_match_kind.py +10 -0
- holder/generated/models/card_reference_resolve_data_status.py +10 -0
- holder/generated/models/card_reference_resolve_request.py +82 -0
- holder/generated/models/card_reference_resolve_request_scope.py +10 -0
- holder/generated/models/card_reference_resolve_response.py +78 -0
- holder/generated/models/card_tag_mutation_request.py +70 -0
- holder/generated/models/card_tag_mutation_response.py +78 -0
- holder/generated/models/card_tag_mutation_result.py +88 -0
- holder/generated/models/card_tag_mutation_result_outcome.py +12 -0
- holder/generated/models/card_update_request.py +122 -0
- holder/generated/models/caste_info.py +85 -0
- holder/generated/models/caste_info_name.py +12 -0
- holder/generated/models/caste_recommended_model.py +143 -0
- holder/generated/models/caste_recommended_model_required_caste.py +12 -0
- holder/generated/models/change_event_data.py +109 -0
- holder/generated/models/change_event_data_entity.py +14 -0
- holder/generated/models/delete_cards_card_id_children.py +9 -0
- holder/generated/models/delete_cards_card_id_resources_body.py +70 -0
- holder/generated/models/error.py +70 -0
- holder/generated/models/error_response.py +76 -0
- holder/generated/models/event_checkpoint.py +92 -0
- holder/generated/models/event_checkpoint_git_revisions.py +66 -0
- holder/generated/models/event_checkpoint_history_urls.py +48 -0
- holder/generated/models/event_checkpoint_response.py +76 -0
- holder/generated/models/event_resync_data.py +116 -0
- holder/generated/models/event_resync_data_reason.py +9 -0
- holder/generated/models/get_ai_catalog_json_response_200.py +46 -0
- holder/generated/models/get_ai_messages_message_id_backlinks_include_deleted.py +9 -0
- holder/generated/models/get_ai_messages_message_id_links_include_deleted.py +9 -0
- holder/generated/models/get_cards_card_id_backlinks_include_deleted.py +9 -0
- holder/generated/models/get_cards_card_id_links_include_deleted.py +9 -0
- holder/generated/models/get_cards_context_order.py +10 -0
- holder/generated/models/get_cards_order.py +10 -0
- holder/generated/models/get_cards_view.py +9 -0
- holder/generated/models/get_git_providers_json_response_200.py +46 -0
- holder/generated/models/get_locations_location_id_response_200.py +46 -0
- holder/generated/models/get_ping_response_200.py +8 -0
- holder/generated/models/get_projects_order.py +13 -0
- holder/generated/models/get_projects_project_id_cards_order.py +9 -0
- holder/generated/models/get_projects_project_id_cards_parent_type_0.py +8 -0
- holder/generated/models/get_projects_project_id_history_cards_card_id_compare_mode.py +9 -0
- holder/generated/models/get_projects_project_id_history_kind.py +13 -0
- holder/generated/models/health_data.py +110 -0
- holder/generated/models/health_data_crypt_filter.py +78 -0
- holder/generated/models/health_response.py +76 -0
- holder/generated/models/hierarchy_repair.py +100 -0
- holder/generated/models/hierarchy_repair_move.py +76 -0
- holder/generated/models/hierarchy_repair_request.py +62 -0
- holder/generated/models/hierarchy_repair_response.py +76 -0
- holder/generated/models/local_model.py +91 -0
- holder/generated/models/location_binding_request.py +81 -0
- holder/generated/models/location_binding_request_values.py +46 -0
- holder/generated/models/milestone.py +177 -0
- holder/generated/models/milestone_create_request.py +135 -0
- holder/generated/models/milestone_list_response.py +84 -0
- holder/generated/models/milestone_remove_response.py +78 -0
- holder/generated/models/milestone_remove_result.py +79 -0
- holder/generated/models/milestone_response.py +76 -0
- holder/generated/models/milestone_update_request.py +116 -0
- holder/generated/models/patch_locations_location_id_body.py +90 -0
- holder/generated/models/patch_locations_location_id_body_configuration.py +46 -0
- holder/generated/models/post_ai_runner_pull_body.py +62 -0
- holder/generated/models/post_cards_card_id_resources_body.py +70 -0
- holder/generated/models/post_locations_response_201.py +46 -0
- holder/generated/models/project.py +197 -0
- holder/generated/models/project_calendar_response.py +78 -0
- holder/generated/models/project_calendar_response_data.py +136 -0
- holder/generated/models/project_create_request.py +177 -0
- holder/generated/models/project_create_request_privacy_mode.py +9 -0
- holder/generated/models/project_create_response.py +78 -0
- holder/generated/models/project_create_response_data.py +62 -0
- holder/generated/models/project_delete_response.py +78 -0
- holder/generated/models/project_delete_response_data.py +62 -0
- holder/generated/models/project_encryption_check.py +94 -0
- holder/generated/models/project_encryption_check_response.py +80 -0
- holder/generated/models/project_encryption_check_response_data.py +92 -0
- holder/generated/models/project_encryption_check_response_data_privacy_mode.py +9 -0
- holder/generated/models/project_get_response.py +76 -0
- holder/generated/models/project_git_push_request.py +95 -0
- holder/generated/models/project_git_push_response.py +78 -0
- holder/generated/models/project_git_push_response_data.py +199 -0
- holder/generated/models/project_git_push_response_data_status.py +15 -0
- holder/generated/models/project_git_sync_operation_response.py +80 -0
- holder/generated/models/project_git_sync_operation_response_data.py +163 -0
- holder/generated/models/project_git_sync_operation_response_data_pull.py +96 -0
- holder/generated/models/project_git_sync_operation_response_data_pull_status.py +11 -0
- holder/generated/models/project_git_sync_operation_response_data_push.py +118 -0
- holder/generated/models/project_git_sync_operation_response_data_push_status.py +15 -0
- holder/generated/models/project_git_sync_operation_response_data_status.py +9 -0
- holder/generated/models/project_git_sync_request.py +94 -0
- holder/generated/models/project_git_sync_status_response.py +80 -0
- holder/generated/models/project_git_sync_status_response_data.py +76 -0
- holder/generated/models/project_git_test_remote_request.py +96 -0
- holder/generated/models/project_git_test_remote_response.py +80 -0
- holder/generated/models/project_git_test_remote_response_data.py +151 -0
- holder/generated/models/project_git_test_remote_response_data_status.py +14 -0
- holder/generated/models/project_history_activity.py +138 -0
- holder/generated/models/project_history_affected_object.py +74 -0
- holder/generated/models/project_history_affected_object_kind.py +13 -0
- holder/generated/models/project_history_page_data.py +115 -0
- holder/generated/models/project_history_page_response.py +78 -0
- holder/generated/models/project_list_response.py +84 -0
- holder/generated/models/project_privacy_mode.py +9 -0
- holder/generated/models/project_recovery_token_export_request.py +62 -0
- holder/generated/models/project_recovery_token_export_response.py +80 -0
- holder/generated/models/project_recovery_token_export_response_data.py +78 -0
- holder/generated/models/project_recovery_token_import_request.py +70 -0
- holder/generated/models/project_recovery_token_import_response.py +80 -0
- holder/generated/models/project_recovery_token_import_response_data.py +62 -0
- holder/generated/models/project_sync.py +227 -0
- holder/generated/models/project_tag.py +70 -0
- holder/generated/models/project_tag_list_response.py +84 -0
- holder/generated/models/project_update_request.py +181 -0
- holder/generated/models/project_update_request_privacy_mode.py +9 -0
- holder/generated/models/project_update_response.py +78 -0
- holder/generated/models/project_update_response_data.py +75 -0
- holder/generated/models/put_locations_preferred_body.py +70 -0
- holder/generated/models/rebuild_data.py +94 -0
- holder/generated/models/rebuild_request.py +62 -0
- holder/generated/models/rebuild_response.py +76 -0
- holder/generated/models/recovery_token_import_auto_response.py +80 -0
- holder/generated/models/recovery_token_import_auto_response_data.py +141 -0
- holder/generated/models/recovery_token_import_auto_response_data_pull_status.py +10 -0
- holder/generated/models/reindex_data.py +62 -0
- holder/generated/models/reindex_response.py +76 -0
- holder/generated/models/resource.py +134 -0
- holder/generated/models/resource_asset.py +140 -0
- holder/generated/models/resource_attachment_response.py +80 -0
- holder/generated/models/resource_attachment_response_data.py +90 -0
- holder/generated/models/resource_attachment_response_data_outcome.py +11 -0
- holder/generated/models/resource_create_request.py +129 -0
- holder/generated/models/resource_delete_response.py +78 -0
- holder/generated/models/resource_delete_response_data.py +62 -0
- holder/generated/models/resource_list_response.py +134 -0
- holder/generated/models/resource_metadata.py +55 -0
- holder/generated/models/resource_response.py +76 -0
- holder/generated/models/resource_update_request.py +102 -0
- holder/generated/models/runner_capabilities_data.py +220 -0
- holder/generated/models/runner_capabilities_response.py +78 -0
- holder/generated/models/runner_pull_job.py +122 -0
- holder/generated/models/runner_pull_progress.py +86 -0
- holder/generated/models/runner_pull_start_response.py +78 -0
- holder/generated/models/runner_pull_start_response_data.py +78 -0
- holder/generated/models/runner_pull_status_response.py +76 -0
- holder/generated/models/search_card_item.py +102 -0
- holder/generated/models/search_cards_response.py +84 -0
- holder/generated/models/search_message_item.py +86 -0
- holder/generated/models/search_messages_response.py +84 -0
- holder/generated/models/storage_location.py +149 -0
- holder/generated/models/storage_location_configuration.py +48 -0
- holder/generated/models/storage_location_list_response.py +100 -0
- holder/generated/models/storage_location_provider.py +9 -0
- holder/generated/models/storage_location_request.py +118 -0
- holder/generated/models/storage_location_request_configuration.py +46 -0
- holder/generated/models/storage_location_request_provider.py +9 -0
- holder/generated/models/trash_delete_response.py +78 -0
- holder/generated/models/trash_delete_response_data.py +46 -0
- holder/generated/models/trash_item.py +211 -0
- holder/generated/models/trash_list_response.py +84 -0
- holder/generated/types.py +54 -0
- holder/library.py +15 -0
- holder/models/__init__.py +15 -0
- holder/models/card.py +272 -0
- holder/models/project.py +207 -0
- holder/models/search.py +66 -0
- holder/models/tag.py +117 -0
- holder/py.typed +0 -0
- holder_python-0.2.5.dist-info/METADATA +120 -0
- holder_python-0.2.5.dist-info/RECORD +391 -0
- holder_python-0.2.5.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from ..models.resource import Resource
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
T = TypeVar("T", bound="ResourceListResponse")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@_attrs_define
|
|
20
|
+
class ResourceListResponse:
|
|
21
|
+
"""
|
|
22
|
+
Attributes:
|
|
23
|
+
ok (bool):
|
|
24
|
+
data (list[Resource]):
|
|
25
|
+
card_id (str | Unset): Canonical live card ID, present only for card attachment lists.
|
|
26
|
+
limit (int | Unset):
|
|
27
|
+
offset (int | Unset):
|
|
28
|
+
next_offset (int | None | Unset): Present for card lists; null when exhausted, otherwise continue here (the next
|
|
29
|
+
page may be empty).
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
ok: bool
|
|
33
|
+
data: list[Resource]
|
|
34
|
+
card_id: str | Unset = UNSET
|
|
35
|
+
limit: int | Unset = UNSET
|
|
36
|
+
offset: int | Unset = UNSET
|
|
37
|
+
next_offset: int | None | Unset = UNSET
|
|
38
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
39
|
+
|
|
40
|
+
def to_dict(self) -> dict[str, Any]:
|
|
41
|
+
ok = self.ok
|
|
42
|
+
|
|
43
|
+
data = []
|
|
44
|
+
for data_item_data in self.data:
|
|
45
|
+
data_item = data_item_data.to_dict()
|
|
46
|
+
data.append(data_item)
|
|
47
|
+
|
|
48
|
+
card_id = self.card_id
|
|
49
|
+
|
|
50
|
+
limit = self.limit
|
|
51
|
+
|
|
52
|
+
offset = self.offset
|
|
53
|
+
|
|
54
|
+
next_offset: int | None | Unset
|
|
55
|
+
if isinstance(self.next_offset, Unset):
|
|
56
|
+
next_offset = UNSET
|
|
57
|
+
else:
|
|
58
|
+
next_offset = self.next_offset
|
|
59
|
+
|
|
60
|
+
field_dict: dict[str, Any] = {}
|
|
61
|
+
field_dict.update(self.additional_properties)
|
|
62
|
+
field_dict.update(
|
|
63
|
+
{
|
|
64
|
+
"ok": ok,
|
|
65
|
+
"data": data,
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
if card_id is not UNSET:
|
|
69
|
+
field_dict["card_id"] = card_id
|
|
70
|
+
if limit is not UNSET:
|
|
71
|
+
field_dict["limit"] = limit
|
|
72
|
+
if offset is not UNSET:
|
|
73
|
+
field_dict["offset"] = offset
|
|
74
|
+
if next_offset is not UNSET:
|
|
75
|
+
field_dict["next_offset"] = next_offset
|
|
76
|
+
|
|
77
|
+
return field_dict
|
|
78
|
+
|
|
79
|
+
@classmethod
|
|
80
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
81
|
+
from ..models.resource import Resource
|
|
82
|
+
|
|
83
|
+
d = dict(src_dict)
|
|
84
|
+
ok = d.pop("ok")
|
|
85
|
+
|
|
86
|
+
data = []
|
|
87
|
+
_data = d.pop("data")
|
|
88
|
+
for data_item_data in _data:
|
|
89
|
+
data_item = Resource.from_dict(data_item_data)
|
|
90
|
+
|
|
91
|
+
data.append(data_item)
|
|
92
|
+
|
|
93
|
+
card_id = d.pop("card_id", UNSET)
|
|
94
|
+
|
|
95
|
+
limit = d.pop("limit", UNSET)
|
|
96
|
+
|
|
97
|
+
offset = d.pop("offset", UNSET)
|
|
98
|
+
|
|
99
|
+
def _parse_next_offset(data: object) -> int | None | Unset:
|
|
100
|
+
if data is None:
|
|
101
|
+
return data
|
|
102
|
+
if isinstance(data, Unset):
|
|
103
|
+
return data
|
|
104
|
+
return cast(int | None | Unset, data)
|
|
105
|
+
|
|
106
|
+
next_offset = _parse_next_offset(d.pop("next_offset", UNSET))
|
|
107
|
+
|
|
108
|
+
resource_list_response = cls(
|
|
109
|
+
ok=ok,
|
|
110
|
+
data=data,
|
|
111
|
+
card_id=card_id,
|
|
112
|
+
limit=limit,
|
|
113
|
+
offset=offset,
|
|
114
|
+
next_offset=next_offset,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
resource_list_response.additional_properties = d
|
|
118
|
+
return resource_list_response
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def additional_keys(self) -> list[str]:
|
|
122
|
+
return list(self.additional_properties.keys())
|
|
123
|
+
|
|
124
|
+
def __getitem__(self, key: str) -> Any:
|
|
125
|
+
return self.additional_properties[key]
|
|
126
|
+
|
|
127
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
128
|
+
self.additional_properties[key] = value
|
|
129
|
+
|
|
130
|
+
def __delitem__(self, key: str) -> None:
|
|
131
|
+
del self.additional_properties[key]
|
|
132
|
+
|
|
133
|
+
def __contains__(self, key: str) -> bool:
|
|
134
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="ResourceMetadata")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class ResourceMetadata:
|
|
15
|
+
"""Permissive metadata map. Repeated and custom values are preserved in order."""
|
|
16
|
+
|
|
17
|
+
additional_properties: dict[str, list[str]] = _attrs_field(init=False, factory=dict)
|
|
18
|
+
|
|
19
|
+
def to_dict(self) -> dict[str, Any]:
|
|
20
|
+
|
|
21
|
+
field_dict: dict[str, Any] = {}
|
|
22
|
+
for prop_name, prop in self.additional_properties.items():
|
|
23
|
+
field_dict[prop_name] = prop
|
|
24
|
+
|
|
25
|
+
return field_dict
|
|
26
|
+
|
|
27
|
+
@classmethod
|
|
28
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
29
|
+
d = dict(src_dict)
|
|
30
|
+
resource_metadata = cls()
|
|
31
|
+
|
|
32
|
+
additional_properties = {}
|
|
33
|
+
for prop_name, prop_dict in d.items():
|
|
34
|
+
additional_property = cast(list[str], prop_dict)
|
|
35
|
+
|
|
36
|
+
additional_properties[prop_name] = additional_property
|
|
37
|
+
|
|
38
|
+
resource_metadata.additional_properties = additional_properties
|
|
39
|
+
return resource_metadata
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def additional_keys(self) -> list[str]:
|
|
43
|
+
return list(self.additional_properties.keys())
|
|
44
|
+
|
|
45
|
+
def __getitem__(self, key: str) -> list[str]:
|
|
46
|
+
return self.additional_properties[key]
|
|
47
|
+
|
|
48
|
+
def __setitem__(self, key: str, value: list[str]) -> None:
|
|
49
|
+
self.additional_properties[key] = value
|
|
50
|
+
|
|
51
|
+
def __delitem__(self, key: str) -> None:
|
|
52
|
+
del self.additional_properties[key]
|
|
53
|
+
|
|
54
|
+
def __contains__(self, key: str) -> bool:
|
|
55
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..models.resource import Resource
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="ResourceResponse")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class ResourceResponse:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
ok (bool):
|
|
22
|
+
data (Resource):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
ok: bool
|
|
26
|
+
data: Resource
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
ok = self.ok
|
|
31
|
+
|
|
32
|
+
data = self.data.to_dict()
|
|
33
|
+
|
|
34
|
+
field_dict: dict[str, Any] = {}
|
|
35
|
+
field_dict.update(self.additional_properties)
|
|
36
|
+
field_dict.update(
|
|
37
|
+
{
|
|
38
|
+
"ok": ok,
|
|
39
|
+
"data": data,
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
return field_dict
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
47
|
+
from ..models.resource import Resource
|
|
48
|
+
|
|
49
|
+
d = dict(src_dict)
|
|
50
|
+
ok = d.pop("ok")
|
|
51
|
+
|
|
52
|
+
data = Resource.from_dict(d.pop("data"))
|
|
53
|
+
|
|
54
|
+
resource_response = cls(
|
|
55
|
+
ok=ok,
|
|
56
|
+
data=data,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
resource_response.additional_properties = d
|
|
60
|
+
return resource_response
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def additional_keys(self) -> list[str]:
|
|
64
|
+
return list(self.additional_properties.keys())
|
|
65
|
+
|
|
66
|
+
def __getitem__(self, key: str) -> Any:
|
|
67
|
+
return self.additional_properties[key]
|
|
68
|
+
|
|
69
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
70
|
+
self.additional_properties[key] = value
|
|
71
|
+
|
|
72
|
+
def __delitem__(self, key: str) -> None:
|
|
73
|
+
del self.additional_properties[key]
|
|
74
|
+
|
|
75
|
+
def __contains__(self, key: str) -> bool:
|
|
76
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from ..models.resource_metadata import ResourceMetadata
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
T = TypeVar("T", bound="ResourceUpdateRequest")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@_attrs_define
|
|
20
|
+
class ResourceUpdateRequest:
|
|
21
|
+
"""
|
|
22
|
+
Attributes:
|
|
23
|
+
type_ (str | Unset):
|
|
24
|
+
label (str | Unset):
|
|
25
|
+
metadata (ResourceMetadata | Unset): Permissive metadata map. Repeated and custom values are preserved in order.
|
|
26
|
+
updated_at (int | Unset):
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
type_: str | Unset = UNSET
|
|
30
|
+
label: str | Unset = UNSET
|
|
31
|
+
metadata: ResourceMetadata | Unset = UNSET
|
|
32
|
+
updated_at: int | Unset = UNSET
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
type_ = self.type_
|
|
37
|
+
|
|
38
|
+
label = self.label
|
|
39
|
+
|
|
40
|
+
metadata: dict[str, Any] | Unset = UNSET
|
|
41
|
+
if not isinstance(self.metadata, Unset):
|
|
42
|
+
metadata = self.metadata.to_dict()
|
|
43
|
+
|
|
44
|
+
updated_at = self.updated_at
|
|
45
|
+
|
|
46
|
+
field_dict: dict[str, Any] = {}
|
|
47
|
+
field_dict.update(self.additional_properties)
|
|
48
|
+
field_dict.update({})
|
|
49
|
+
if type_ is not UNSET:
|
|
50
|
+
field_dict["type"] = type_
|
|
51
|
+
if label is not UNSET:
|
|
52
|
+
field_dict["label"] = label
|
|
53
|
+
if metadata is not UNSET:
|
|
54
|
+
field_dict["metadata"] = metadata
|
|
55
|
+
if updated_at is not UNSET:
|
|
56
|
+
field_dict["updated_at"] = updated_at
|
|
57
|
+
|
|
58
|
+
return field_dict
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
62
|
+
from ..models.resource_metadata import ResourceMetadata
|
|
63
|
+
|
|
64
|
+
d = dict(src_dict)
|
|
65
|
+
type_ = d.pop("type", UNSET)
|
|
66
|
+
|
|
67
|
+
label = d.pop("label", UNSET)
|
|
68
|
+
|
|
69
|
+
_metadata = d.pop("metadata", UNSET)
|
|
70
|
+
metadata: ResourceMetadata | Unset
|
|
71
|
+
if isinstance(_metadata, Unset):
|
|
72
|
+
metadata = UNSET
|
|
73
|
+
else:
|
|
74
|
+
metadata = ResourceMetadata.from_dict(_metadata)
|
|
75
|
+
|
|
76
|
+
updated_at = d.pop("updated_at", UNSET)
|
|
77
|
+
|
|
78
|
+
resource_update_request = cls(
|
|
79
|
+
type_=type_,
|
|
80
|
+
label=label,
|
|
81
|
+
metadata=metadata,
|
|
82
|
+
updated_at=updated_at,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
resource_update_request.additional_properties = d
|
|
86
|
+
return resource_update_request
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def additional_keys(self) -> list[str]:
|
|
90
|
+
return list(self.additional_properties.keys())
|
|
91
|
+
|
|
92
|
+
def __getitem__(self, key: str) -> Any:
|
|
93
|
+
return self.additional_properties[key]
|
|
94
|
+
|
|
95
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
96
|
+
self.additional_properties[key] = value
|
|
97
|
+
|
|
98
|
+
def __delitem__(self, key: str) -> None:
|
|
99
|
+
del self.additional_properties[key]
|
|
100
|
+
|
|
101
|
+
def __contains__(self, key: str) -> bool:
|
|
102
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from ..models.ai_local_model_config_data import AiLocalModelConfigData
|
|
14
|
+
from ..models.caste_info import CasteInfo
|
|
15
|
+
from ..models.caste_recommended_model import CasteRecommendedModel
|
|
16
|
+
from ..models.local_model import LocalModel
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
T = TypeVar("T", bound="RunnerCapabilitiesData")
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@_attrs_define
|
|
23
|
+
class RunnerCapabilitiesData:
|
|
24
|
+
"""
|
|
25
|
+
Attributes:
|
|
26
|
+
runner_available (bool):
|
|
27
|
+
last_checked (int):
|
|
28
|
+
local_model_config (AiLocalModelConfigData):
|
|
29
|
+
models (list[LocalModel]):
|
|
30
|
+
recommended_models (list[CasteRecommendedModel]):
|
|
31
|
+
recommended_install (list[CasteRecommendedModel]):
|
|
32
|
+
spawn_attempted (bool | Unset):
|
|
33
|
+
version (str | Unset):
|
|
34
|
+
error (None | str | Unset):
|
|
35
|
+
caste (CasteInfo | None | Unset):
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
runner_available: bool
|
|
39
|
+
last_checked: int
|
|
40
|
+
local_model_config: AiLocalModelConfigData
|
|
41
|
+
models: list[LocalModel]
|
|
42
|
+
recommended_models: list[CasteRecommendedModel]
|
|
43
|
+
recommended_install: list[CasteRecommendedModel]
|
|
44
|
+
spawn_attempted: bool | Unset = UNSET
|
|
45
|
+
version: str | Unset = UNSET
|
|
46
|
+
error: None | str | Unset = UNSET
|
|
47
|
+
caste: CasteInfo | None | Unset = UNSET
|
|
48
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
49
|
+
|
|
50
|
+
def to_dict(self) -> dict[str, Any]:
|
|
51
|
+
from ..models.caste_info import CasteInfo
|
|
52
|
+
|
|
53
|
+
runner_available = self.runner_available
|
|
54
|
+
|
|
55
|
+
last_checked = self.last_checked
|
|
56
|
+
|
|
57
|
+
local_model_config = self.local_model_config.to_dict()
|
|
58
|
+
|
|
59
|
+
models = []
|
|
60
|
+
for models_item_data in self.models:
|
|
61
|
+
models_item = models_item_data.to_dict()
|
|
62
|
+
models.append(models_item)
|
|
63
|
+
|
|
64
|
+
recommended_models = []
|
|
65
|
+
for recommended_models_item_data in self.recommended_models:
|
|
66
|
+
recommended_models_item = recommended_models_item_data.to_dict()
|
|
67
|
+
recommended_models.append(recommended_models_item)
|
|
68
|
+
|
|
69
|
+
recommended_install = []
|
|
70
|
+
for recommended_install_item_data in self.recommended_install:
|
|
71
|
+
recommended_install_item = recommended_install_item_data.to_dict()
|
|
72
|
+
recommended_install.append(recommended_install_item)
|
|
73
|
+
|
|
74
|
+
spawn_attempted = self.spawn_attempted
|
|
75
|
+
|
|
76
|
+
version = self.version
|
|
77
|
+
|
|
78
|
+
error: None | str | Unset
|
|
79
|
+
if isinstance(self.error, Unset):
|
|
80
|
+
error = UNSET
|
|
81
|
+
else:
|
|
82
|
+
error = self.error
|
|
83
|
+
|
|
84
|
+
caste: dict[str, Any] | None | Unset
|
|
85
|
+
if isinstance(self.caste, Unset):
|
|
86
|
+
caste = UNSET
|
|
87
|
+
elif isinstance(self.caste, CasteInfo):
|
|
88
|
+
caste = self.caste.to_dict()
|
|
89
|
+
else:
|
|
90
|
+
caste = self.caste
|
|
91
|
+
|
|
92
|
+
field_dict: dict[str, Any] = {}
|
|
93
|
+
field_dict.update(self.additional_properties)
|
|
94
|
+
field_dict.update(
|
|
95
|
+
{
|
|
96
|
+
"runner_available": runner_available,
|
|
97
|
+
"last_checked": last_checked,
|
|
98
|
+
"local_model_config": local_model_config,
|
|
99
|
+
"models": models,
|
|
100
|
+
"recommended_models": recommended_models,
|
|
101
|
+
"recommended_install": recommended_install,
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
if spawn_attempted is not UNSET:
|
|
105
|
+
field_dict["spawn_attempted"] = spawn_attempted
|
|
106
|
+
if version is not UNSET:
|
|
107
|
+
field_dict["version"] = version
|
|
108
|
+
if error is not UNSET:
|
|
109
|
+
field_dict["error"] = error
|
|
110
|
+
if caste is not UNSET:
|
|
111
|
+
field_dict["caste"] = caste
|
|
112
|
+
|
|
113
|
+
return field_dict
|
|
114
|
+
|
|
115
|
+
@classmethod
|
|
116
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
117
|
+
from ..models.ai_local_model_config_data import (
|
|
118
|
+
AiLocalModelConfigData,
|
|
119
|
+
)
|
|
120
|
+
from ..models.caste_info import CasteInfo
|
|
121
|
+
from ..models.caste_recommended_model import (
|
|
122
|
+
CasteRecommendedModel,
|
|
123
|
+
)
|
|
124
|
+
from ..models.local_model import LocalModel
|
|
125
|
+
|
|
126
|
+
d = dict(src_dict)
|
|
127
|
+
runner_available = d.pop("runner_available")
|
|
128
|
+
|
|
129
|
+
last_checked = d.pop("last_checked")
|
|
130
|
+
|
|
131
|
+
local_model_config = AiLocalModelConfigData.from_dict(
|
|
132
|
+
d.pop("local_model_config")
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
models = []
|
|
136
|
+
_models = d.pop("models")
|
|
137
|
+
for models_item_data in _models:
|
|
138
|
+
models_item = LocalModel.from_dict(models_item_data)
|
|
139
|
+
|
|
140
|
+
models.append(models_item)
|
|
141
|
+
|
|
142
|
+
recommended_models = []
|
|
143
|
+
_recommended_models = d.pop("recommended_models")
|
|
144
|
+
for recommended_models_item_data in _recommended_models:
|
|
145
|
+
recommended_models_item = CasteRecommendedModel.from_dict(
|
|
146
|
+
recommended_models_item_data
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
recommended_models.append(recommended_models_item)
|
|
150
|
+
|
|
151
|
+
recommended_install = []
|
|
152
|
+
_recommended_install = d.pop("recommended_install")
|
|
153
|
+
for recommended_install_item_data in _recommended_install:
|
|
154
|
+
recommended_install_item = CasteRecommendedModel.from_dict(
|
|
155
|
+
recommended_install_item_data
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
recommended_install.append(recommended_install_item)
|
|
159
|
+
|
|
160
|
+
spawn_attempted = d.pop("spawn_attempted", UNSET)
|
|
161
|
+
|
|
162
|
+
version = d.pop("version", UNSET)
|
|
163
|
+
|
|
164
|
+
def _parse_error(data: object) -> None | str | Unset:
|
|
165
|
+
if data is None:
|
|
166
|
+
return data
|
|
167
|
+
if isinstance(data, Unset):
|
|
168
|
+
return data
|
|
169
|
+
return cast(None | str | Unset, data)
|
|
170
|
+
|
|
171
|
+
error = _parse_error(d.pop("error", UNSET))
|
|
172
|
+
|
|
173
|
+
def _parse_caste(data: object) -> CasteInfo | None | Unset:
|
|
174
|
+
if data is None:
|
|
175
|
+
return data
|
|
176
|
+
if isinstance(data, Unset):
|
|
177
|
+
return data
|
|
178
|
+
try:
|
|
179
|
+
if not isinstance(data, dict):
|
|
180
|
+
raise TypeError()
|
|
181
|
+
caste_type_1 = CasteInfo.from_dict(data)
|
|
182
|
+
|
|
183
|
+
return caste_type_1
|
|
184
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
185
|
+
pass
|
|
186
|
+
return cast(CasteInfo | None | Unset, data)
|
|
187
|
+
|
|
188
|
+
caste = _parse_caste(d.pop("caste", UNSET))
|
|
189
|
+
|
|
190
|
+
runner_capabilities_data = cls(
|
|
191
|
+
runner_available=runner_available,
|
|
192
|
+
last_checked=last_checked,
|
|
193
|
+
local_model_config=local_model_config,
|
|
194
|
+
models=models,
|
|
195
|
+
recommended_models=recommended_models,
|
|
196
|
+
recommended_install=recommended_install,
|
|
197
|
+
spawn_attempted=spawn_attempted,
|
|
198
|
+
version=version,
|
|
199
|
+
error=error,
|
|
200
|
+
caste=caste,
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
runner_capabilities_data.additional_properties = d
|
|
204
|
+
return runner_capabilities_data
|
|
205
|
+
|
|
206
|
+
@property
|
|
207
|
+
def additional_keys(self) -> list[str]:
|
|
208
|
+
return list(self.additional_properties.keys())
|
|
209
|
+
|
|
210
|
+
def __getitem__(self, key: str) -> Any:
|
|
211
|
+
return self.additional_properties[key]
|
|
212
|
+
|
|
213
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
214
|
+
self.additional_properties[key] = value
|
|
215
|
+
|
|
216
|
+
def __delitem__(self, key: str) -> None:
|
|
217
|
+
del self.additional_properties[key]
|
|
218
|
+
|
|
219
|
+
def __contains__(self, key: str) -> bool:
|
|
220
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from typing_extensions import Self
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..models.runner_capabilities_data import RunnerCapabilitiesData
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="RunnerCapabilitiesResponse")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class RunnerCapabilitiesResponse:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
ok (bool):
|
|
22
|
+
data (RunnerCapabilitiesData):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
ok: bool
|
|
26
|
+
data: RunnerCapabilitiesData
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
ok = self.ok
|
|
31
|
+
|
|
32
|
+
data = self.data.to_dict()
|
|
33
|
+
|
|
34
|
+
field_dict: dict[str, Any] = {}
|
|
35
|
+
field_dict.update(self.additional_properties)
|
|
36
|
+
field_dict.update(
|
|
37
|
+
{
|
|
38
|
+
"ok": ok,
|
|
39
|
+
"data": data,
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
return field_dict
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
47
|
+
from ..models.runner_capabilities_data import (
|
|
48
|
+
RunnerCapabilitiesData,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
d = dict(src_dict)
|
|
52
|
+
ok = d.pop("ok")
|
|
53
|
+
|
|
54
|
+
data = RunnerCapabilitiesData.from_dict(d.pop("data"))
|
|
55
|
+
|
|
56
|
+
runner_capabilities_response = cls(
|
|
57
|
+
ok=ok,
|
|
58
|
+
data=data,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
runner_capabilities_response.additional_properties = d
|
|
62
|
+
return runner_capabilities_response
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def additional_keys(self) -> list[str]:
|
|
66
|
+
return list(self.additional_properties.keys())
|
|
67
|
+
|
|
68
|
+
def __getitem__(self, key: str) -> Any:
|
|
69
|
+
return self.additional_properties[key]
|
|
70
|
+
|
|
71
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
72
|
+
self.additional_properties[key] = value
|
|
73
|
+
|
|
74
|
+
def __delitem__(self, key: str) -> None:
|
|
75
|
+
del self.additional_properties[key]
|
|
76
|
+
|
|
77
|
+
def __contains__(self, key: str) -> bool:
|
|
78
|
+
return key in self.additional_properties
|