flywheel-sdk 21.2.0rc0__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.
- flywheel/__init__.py +784 -0
- flywheel/api/__init__.py +46 -0
- flywheel/api/acquisitions_api.py +5014 -0
- flywheel/api/analyses_api.py +3848 -0
- flywheel/api/audit_trail_api.py +568 -0
- flywheel/api/auth_api.py +121 -0
- flywheel/api/batch_api.py +630 -0
- flywheel/api/bulk_api.py +140 -0
- flywheel/api/change_log_api.py +254 -0
- flywheel/api/collections_api.py +3913 -0
- flywheel/api/config_api.py +299 -0
- flywheel/api/container_tasks_api.py +137 -0
- flywheel/api/container_type_api.py +137 -0
- flywheel/api/containers_api.py +4784 -0
- flywheel/api/custom_filters_api.py +466 -0
- flywheel/api/data_view_executions_api.py +549 -0
- flywheel/api/dataexplorer_api.py +1192 -0
- flywheel/api/devices_api.py +1071 -0
- flywheel/api/dimse_api.py +814 -0
- flywheel/api/download_api.py +261 -0
- flywheel/api/files_api.py +1868 -0
- flywheel/api/form_responses_api.py +703 -0
- flywheel/api/gears_api.py +1875 -0
- flywheel/api/groups_api.py +2829 -0
- flywheel/api/jobs_api.py +2320 -0
- flywheel/api/jupyterlab_servers_api.py +245 -0
- flywheel/api/modalities_api.py +562 -0
- flywheel/api/packfiles_api.py +121 -0
- flywheel/api/projects_api.py +7820 -0
- flywheel/api/protocols_api.py +757 -0
- flywheel/api/reports_api.py +1057 -0
- flywheel/api/resolve_api.py +276 -0
- flywheel/api/roles_api.py +563 -0
- flywheel/api/sessions_api.py +5296 -0
- flywheel/api/site_api.py +1552 -0
- flywheel/api/staffing_pools_api.py +677 -0
- flywheel/api/subjects_api.py +5349 -0
- flywheel/api/tasks_api.py +897 -0
- flywheel/api/tree_api.py +266 -0
- flywheel/api/uids_api.py +140 -0
- flywheel/api/upload_api.py +842 -0
- flywheel/api/users_api.py +2142 -0
- flywheel/api/views_api.py +1089 -0
- flywheel/api_client.py +748 -0
- flywheel/client.py +291 -0
- flywheel/configuration.py +308 -0
- flywheel/drone_login.py +65 -0
- flywheel/file_spec.py +67 -0
- flywheel/finder.py +168 -0
- flywheel/flywheel.py +9867 -0
- flywheel/gear_context.py +374 -0
- flywheel/models/__init__.py +726 -0
- flywheel/models/access_level.py +30 -0
- flywheel/models/access_permission.py +197 -0
- flywheel/models/access_permission_output.py +192 -0
- flywheel/models/access_permission_update.py +166 -0
- flywheel/models/access_type.py +54 -0
- flywheel/models/accumulator.py +33 -0
- flywheel/models/acquisition.py +25 -0
- flywheel/models/acquisition_container_output.py +34 -0
- flywheel/models/acquisition_copy_input.py +223 -0
- flywheel/models/acquisition_input.py +297 -0
- flywheel/models/acquisition_list_output.py +767 -0
- flywheel/models/acquisition_modify_input.py +299 -0
- flywheel/models/acquisition_node.py +35 -0
- flywheel/models/acquisition_output.py +767 -0
- flywheel/models/acquisition_parents.py +241 -0
- flywheel/models/acquisition_template_options.py +275 -0
- flywheel/models/acquisition_upsert_input.py +383 -0
- flywheel/models/acquisition_upsert_output.py +243 -0
- flywheel/models/action.py +91 -0
- flywheel/models/adhoc_analysis_input.py +247 -0
- flywheel/models/analysis.py +25 -0
- flywheel/models/analysis_container_output.py +34 -0
- flywheel/models/analysis_files_create_ticket_output.py +241 -0
- flywheel/models/analysis_input.py +310 -0
- flywheel/models/analysis_input_legacy.py +25 -0
- flywheel/models/analysis_list_output.py +680 -0
- flywheel/models/analysis_list_output_inflated_job.py +650 -0
- flywheel/models/analysis_modify_input.py +191 -0
- flywheel/models/analysis_node.py +35 -0
- flywheel/models/analysis_output.py +683 -0
- flywheel/models/analysis_output_inflated_job.py +674 -0
- flywheel/models/analysis_parents.py +270 -0
- flywheel/models/analysis_update.py +25 -0
- flywheel/models/api_key_input_with_optional_label.py +191 -0
- flywheel/models/api_key_output.py +297 -0
- flywheel/models/as_storage.py +298 -0
- flywheel/models/assignee.py +192 -0
- flywheel/models/assignee_type.py +29 -0
- flywheel/models/audit_trail_report.py +486 -0
- flywheel/models/audit_trail_report_status.py +32 -0
- flywheel/models/auth0_auth_out.py +323 -0
- flywheel/models/auth0_options_out.py +319 -0
- flywheel/models/auth_out.py +357 -0
- flywheel/models/auth_session_output.py +272 -0
- flywheel/models/avatars.py +218 -0
- flywheel/models/aws_creds.py +191 -0
- flywheel/models/aws_storage.py +354 -0
- flywheel/models/azure_creds.py +190 -0
- flywheel/models/base_aet.py +245 -0
- flywheel/models/base_compute.py +426 -0
- flywheel/models/batch.py +360 -0
- flywheel/models/batch_cancel_output.py +36 -0
- flywheel/models/batch_create_filters.py +220 -0
- flywheel/models/batch_job_analysis_input.py +281 -0
- flywheel/models/batch_jobs_proposal_input.py +36 -0
- flywheel/models/batch_proposal.py +25 -0
- flywheel/models/batch_proposal_detail.py +36 -0
- flywheel/models/batch_proposal_input.py +25 -0
- flywheel/models/body.py +36 -0
- flywheel/models/body_regenerate_key_api_devices_device_id_key_post.py +25 -0
- flywheel/models/body_region.py +46 -0
- flywheel/models/bookmark.py +189 -0
- flywheel/models/bulk_move_input.py +272 -0
- flywheel/models/bulk_move_sessions.py +25 -0
- flywheel/models/callbacks_virus_scan_input.py +36 -0
- flywheel/models/cancelled_batch_output.py +163 -0
- flywheel/models/catalog_list_output.py +407 -0
- flywheel/models/central_out.py +299 -0
- flywheel/models/change.py +379 -0
- flywheel/models/change_log_container_type.py +38 -0
- flywheel/models/change_log_document.py +245 -0
- flywheel/models/change_method.py +33 -0
- flywheel/models/classic_batch_job_output.py +352 -0
- flywheel/models/classic_batch_job_output_inflated_jobs.py +379 -0
- flywheel/models/classic_batch_proposal_input.py +388 -0
- flywheel/models/classic_batch_proposal_output.py +471 -0
- flywheel/models/classification_add_delete.py +36 -0
- flywheel/models/classification_replace.py +36 -0
- flywheel/models/classification_update_input.py +36 -0
- flywheel/models/cohort.py +29 -0
- flywheel/models/collection.py +25 -0
- flywheel/models/collection_container_output.py +32 -0
- flywheel/models/collection_input.py +217 -0
- flywheel/models/collection_input_with_contents.py +248 -0
- flywheel/models/collection_node.py +192 -0
- flywheel/models/collection_node_level.py +31 -0
- flywheel/models/collection_operation.py +193 -0
- flywheel/models/collection_operation_type.py +29 -0
- flywheel/models/collection_output.py +639 -0
- flywheel/models/collection_with_stats.py +637 -0
- flywheel/models/column.py +286 -0
- flywheel/models/column_type.py +32 -0
- flywheel/models/common_classification.py +135 -0
- flywheel/models/common_deleted_count.py +25 -0
- flywheel/models/common_editions.py +25 -0
- flywheel/models/common_info.py +135 -0
- flywheel/models/common_join_origins.py +25 -0
- flywheel/models/common_key.py +36 -0
- flywheel/models/common_modified_count.py +25 -0
- flywheel/models/common_object_created.py +36 -0
- flywheel/models/common_project_settings.py +25 -0
- flywheel/models/common_settings.py +36 -0
- flywheel/models/complete_multipart_upload_output.py +189 -0
- flywheel/models/complete_s3_multipart_upload_input.py +241 -0
- flywheel/models/config_feature_map.py +36 -0
- flywheel/models/config_out.py +381 -0
- flywheel/models/config_output.py +36 -0
- flywheel/models/config_site_config_output.py +36 -0
- flywheel/models/config_site_settings.py +36 -0
- flywheel/models/config_site_settings_input.py +36 -0
- flywheel/models/conflict_types.py +30 -0
- flywheel/models/container_delete_reason.py +39 -0
- flywheel/models/container_filter.py +193 -0
- flywheel/models/container_id_view_input.py +521 -0
- flywheel/models/container_id_view_input_execute_and_save.py +308 -0
- flywheel/models/container_modify.py +536 -0
- flywheel/models/container_new_output.py +25 -0
- flywheel/models/container_node_min.py +350 -0
- flywheel/models/container_output.py +36 -0
- flywheel/models/container_output_with_files.py +283 -0
- flywheel/models/container_parents.py +311 -0
- flywheel/models/container_pipeline_input.py +536 -0
- flywheel/models/container_project_parents.py +25 -0
- flywheel/models/container_reference.py +193 -0
- flywheel/models/container_reference_with_label.py +219 -0
- flywheel/models/container_session_parents.py +25 -0
- flywheel/models/container_subject_parents.py +25 -0
- flywheel/models/container_type.py +39 -0
- flywheel/models/container_uidcheck.py +253 -0
- flywheel/models/container_update.py +135 -0
- flywheel/models/context_input.py +217 -0
- flywheel/models/copy_filter.py +299 -0
- flywheel/models/copy_status.py +32 -0
- flywheel/models/core_models_api_key_api_key_input.py +190 -0
- flywheel/models/core_models_audit_trail_create_report_input.py +273 -0
- flywheel/models/core_models_audit_trail_modify_report_input.py +167 -0
- flywheel/models/core_models_common_source.py +189 -0
- flywheel/models/core_models_jobs_api_key_input.py +191 -0
- flywheel/models/core_models_search_parent_type.py +33 -0
- flywheel/models/core_workflows_form_responses_models_form_parents.py +163 -0
- flywheel/models/core_workflows_form_responses_models_form_response_output.py +440 -0
- flywheel/models/core_workflows_reader_models_reader_task_parents.py +295 -0
- flywheel/models/creds.py +135 -0
- flywheel/models/curator.py +221 -0
- flywheel/models/current_user_output.py +707 -0
- flywheel/models/custom_field.py +437 -0
- flywheel/models/custom_form.py +244 -0
- flywheel/models/cvat_info.py +275 -0
- flywheel/models/cvat_settings.py +272 -0
- flywheel/models/cvat_settings_input.py +272 -0
- flywheel/models/cvat_sync_state.py +30 -0
- flywheel/models/daily_report_usage.py +565 -0
- flywheel/models/data_strategy.py +29 -0
- flywheel/models/data_view.py +25 -0
- flywheel/models/data_view_analysis_file_spec.py +221 -0
- flywheel/models/data_view_analysis_filter_spec.py +221 -0
- flywheel/models/data_view_column_alias.py +337 -0
- flywheel/models/data_view_column_spec.py +286 -0
- flywheel/models/data_view_execution.py +505 -0
- flywheel/models/data_view_execution_state.py +31 -0
- flywheel/models/data_view_file_spec.py +392 -0
- flywheel/models/data_view_group_by.py +166 -0
- flywheel/models/data_view_group_by_column.py +194 -0
- flywheel/models/data_view_name_filter_spec.py +194 -0
- flywheel/models/data_view_output.py +25 -0
- flywheel/models/data_view_save_data_view_input.py +25 -0
- flywheel/models/data_view_zip_filter_spec.py +223 -0
- flywheel/models/default_flywheel_role.py +30 -0
- flywheel/models/deid_log_skip_reason.py +29 -0
- flywheel/models/delete_by_search_query.py +253 -0
- flywheel/models/deleted_file.py +514 -0
- flywheel/models/deleted_result.py +194 -0
- flywheel/models/deprecated_action.py +29 -0
- flywheel/models/destination_container_type.py +30 -0
- flywheel/models/device.py +437 -0
- flywheel/models/device_admin_update.py +194 -0
- flywheel/models/device_create.py +219 -0
- flywheel/models/device_self_update.py +272 -0
- flywheel/models/device_status.py +36 -0
- flywheel/models/device_status_entry.py +221 -0
- flywheel/models/device_storage_strategy_update.py +193 -0
- flywheel/models/dimse_project_input.py +36 -0
- flywheel/models/dimse_project_output.py +36 -0
- flywheel/models/dimse_service_input.py +36 -0
- flywheel/models/dimse_service_output.py +36 -0
- flywheel/models/download.py +249 -0
- flywheel/models/download_container_filter.py +167 -0
- flywheel/models/download_container_filter_definition.py +222 -0
- flywheel/models/download_filter.py +221 -0
- flywheel/models/download_filter_definition.py +195 -0
- flywheel/models/download_format.py +29 -0
- flywheel/models/download_input.py +25 -0
- flywheel/models/download_node.py +189 -0
- flywheel/models/download_strategy.py +31 -0
- flywheel/models/download_ticket.py +36 -0
- flywheel/models/download_ticket_stub.py +249 -0
- flywheel/models/download_ticket_with_summary.py +36 -0
- flywheel/models/e_signature.py +242 -0
- flywheel/models/edition.py +169 -0
- flywheel/models/egress_device.py +597 -0
- flywheel/models/egress_device_page.py +219 -0
- flywheel/models/egress_provider.py +408 -0
- flywheel/models/egress_provider_id.py +164 -0
- flywheel/models/exchange_storage.py +243 -0
- flywheel/models/executor_info.py +353 -0
- flywheel/models/export_templates.py +195 -0
- flywheel/models/features.py +1838 -0
- flywheel/models/field_change.py +271 -0
- flywheel/models/field_change_log_document.py +245 -0
- flywheel/models/field_type.py +37 -0
- flywheel/models/file.py +1139 -0
- flywheel/models/file_classification_delta.py +245 -0
- flywheel/models/file_container_type.py +34 -0
- flywheel/models/file_entry.py +740 -0
- flywheel/models/file_export_templates.py +272 -0
- flywheel/models/file_format.py +33 -0
- flywheel/models/file_gear_info.py +215 -0
- flywheel/models/file_group.py +29 -0
- flywheel/models/file_list_output.py +1115 -0
- flywheel/models/file_modify_input.py +191 -0
- flywheel/models/file_move_input.py +221 -0
- flywheel/models/file_node.py +1138 -0
- flywheel/models/file_node_min.py +321 -0
- flywheel/models/file_origin.py +283 -0
- flywheel/models/file_output.py +1135 -0
- flywheel/models/file_parents.py +297 -0
- flywheel/models/file_reference.py +221 -0
- flywheel/models/file_suggestion.py +241 -0
- flywheel/models/file_template_options.py +299 -0
- flywheel/models/file_upsert_input.py +612 -0
- flywheel/models/file_upsert_origin.py +36 -0
- flywheel/models/file_upsert_output.py +1154 -0
- flywheel/models/file_version.py +190 -0
- flywheel/models/file_version_copy_of.py +273 -0
- flywheel/models/file_version_output.py +325 -0
- flywheel/models/file_via.py +245 -0
- flywheel/models/file_zip_entry.py +25 -0
- flywheel/models/file_zip_info.py +25 -0
- flywheel/models/filter.py +350 -0
- flywheel/models/filter_input.py +218 -0
- flywheel/models/filter_values.py +195 -0
- flywheel/models/filter_view.py +28 -0
- flywheel/models/fixed_file_version_input.py +216 -0
- flywheel/models/fixed_input.py +299 -0
- flywheel/models/form_definition.py +163 -0
- flywheel/models/form_response_base.py +311 -0
- flywheel/models/form_response_create.py +193 -0
- flywheel/models/gcp_creds.py +397 -0
- flywheel/models/gcp_storage.py +298 -0
- flywheel/models/gear.py +619 -0
- flywheel/models/gear_category.py +32 -0
- flywheel/models/gear_config.py +138 -0
- flywheel/models/gear_context_input.py +164 -0
- flywheel/models/gear_context_lookup.py +25 -0
- flywheel/models/gear_context_lookup_item.py +36 -0
- flywheel/models/gear_context_value_output.py +272 -0
- flywheel/models/gear_context_value_output_unfound.py +164 -0
- flywheel/models/gear_custom.py +135 -0
- flywheel/models/gear_directive.py +135 -0
- flywheel/models/gear_doc.py +25 -0
- flywheel/models/gear_document.py +332 -0
- flywheel/models/gear_document_input.py +303 -0
- flywheel/models/gear_document_legacy_input.py +302 -0
- flywheel/models/gear_environment.py +135 -0
- flywheel/models/gear_exchange.py +221 -0
- flywheel/models/gear_file_input.py +192 -0
- flywheel/models/gear_id_output.py +170 -0
- flywheel/models/gear_info.py +251 -0
- flywheel/models/gear_input_item.py +231 -0
- flywheel/models/gear_inputs.py +140 -0
- flywheel/models/gear_invocation.py +138 -0
- flywheel/models/gear_key_input.py +191 -0
- flywheel/models/gear_manifest.py +624 -0
- flywheel/models/gear_mixin.py +218 -0
- flywheel/models/gear_node.py +355 -0
- flywheel/models/gear_output_configuration.py +164 -0
- flywheel/models/gear_permissions.py +191 -0
- flywheel/models/gear_permissions_input.py +163 -0
- flywheel/models/gear_permissions_type.py +29 -0
- flywheel/models/gear_return_ticket.py +25 -0
- flywheel/models/gear_rule.py +653 -0
- flywheel/models/gear_rule_condition.py +219 -0
- flywheel/models/gear_rule_condition_type.py +37 -0
- flywheel/models/gear_rule_input.py +517 -0
- flywheel/models/gear_rule_modify_input.py +492 -0
- flywheel/models/gear_rule_output.py +652 -0
- flywheel/models/gear_save_submission.py +221 -0
- flywheel/models/gear_series.py +298 -0
- flywheel/models/gear_series_update.py +163 -0
- flywheel/models/gear_suggestion_output.py +301 -0
- flywheel/models/gear_ticket.py +245 -0
- flywheel/models/gear_ticket_output.py +163 -0
- flywheel/models/google_auth_out.py +299 -0
- flywheel/models/graph_filter.py +329 -0
- flywheel/models/group.py +25 -0
- flywheel/models/group_by.py +163 -0
- flywheel/models/group_by_column.py +36 -0
- flywheel/models/group_container_output.py +33 -0
- flywheel/models/group_input.py +248 -0
- flywheel/models/group_metadata_input.py +36 -0
- flywheel/models/group_node.py +34 -0
- flywheel/models/group_output.py +471 -0
- flywheel/models/group_report.py +218 -0
- flywheel/models/group_role.py +163 -0
- flywheel/models/group_settings_output.py +249 -0
- flywheel/models/group_update.py +249 -0
- flywheel/models/header_feature.py +37 -0
- flywheel/models/hierarchy_export_templates.py +272 -0
- flywheel/models/http_validation_error.py +167 -0
- flywheel/models/info.py +218 -0
- flywheel/models/info_add_remove.py +36 -0
- flywheel/models/info_container_type.py +35 -0
- flywheel/models/info_replace.py +36 -0
- flywheel/models/info_update_input.py +36 -0
- flywheel/models/ingress_provider.py +299 -0
- flywheel/models/ingress_providers.py +272 -0
- flywheel/models/ingress_site_settings.py +305 -0
- flywheel/models/ingress_update_provider.py +218 -0
- flywheel/models/inline_response200.py +163 -0
- flywheel/models/inline_response2001.py +171 -0
- flywheel/models/inline_response2002.py +163 -0
- flywheel/models/inline_response2003.py +36 -0
- flywheel/models/inline_response2005.py +25 -0
- flywheel/models/input_filter.py +221 -0
- flywheel/models/input_job.py +521 -0
- flywheel/models/input_job_profile.py +275 -0
- flywheel/models/inserted_id.py +163 -0
- flywheel/models/job.py +841 -0
- flywheel/models/job_analysis_input.py +273 -0
- flywheel/models/job_ask.py +301 -0
- flywheel/models/job_ask_response.py +195 -0
- flywheel/models/job_ask_response_job.py +978 -0
- flywheel/models/job_ask_return.py +25 -0
- flywheel/models/job_ask_return_criteria.py +245 -0
- flywheel/models/job_ask_state.py +25 -0
- flywheel/models/job_ask_state_response.py +163 -0
- flywheel/models/job_complete.py +220 -0
- flywheel/models/job_completion_input.py +25 -0
- flywheel/models/job_completion_ticket.py +25 -0
- flywheel/models/job_config.py +135 -0
- flywheel/models/job_config_input.py +272 -0
- flywheel/models/job_config_inputs.py +25 -0
- flywheel/models/job_config_output.py +25 -0
- flywheel/models/job_container_detail.py +25 -0
- flywheel/models/job_destination.py +189 -0
- flywheel/models/job_detail.py +925 -0
- flywheel/models/job_detail_container.py +190 -0
- flywheel/models/job_detail_file_entry.py +194 -0
- flywheel/models/job_detail_group.py +190 -0
- flywheel/models/job_detail_parent_info.py +303 -0
- flywheel/models/job_executor_info.py +369 -0
- flywheel/models/job_file_input.py +247 -0
- flywheel/models/job_file_input_list_output.py +247 -0
- flywheel/models/job_file_object.py +435 -0
- flywheel/models/job_file_object_list_output.py +407 -0
- flywheel/models/job_gear_match.py +25 -0
- flywheel/models/job_inputs_array_item.py +305 -0
- flywheel/models/job_inputs_item.py +242 -0
- flywheel/models/job_inputs_object.py +138 -0
- flywheel/models/job_list_entry.py +25 -0
- flywheel/models/job_list_output.py +979 -0
- flywheel/models/job_list_output_config.py +220 -0
- flywheel/models/job_log.py +189 -0
- flywheel/models/job_log_column.py +40 -0
- flywheel/models/job_log_record.py +192 -0
- flywheel/models/job_modify.py +193 -0
- flywheel/models/job_origin.py +190 -0
- flywheel/models/job_output.py +1005 -0
- flywheel/models/job_output_config.py +247 -0
- flywheel/models/job_parents.py +297 -0
- flywheel/models/job_priority.py +31 -0
- flywheel/models/job_priority_update.py +192 -0
- flywheel/models/job_profile.py +427 -0
- flywheel/models/job_profile_input.py +25 -0
- flywheel/models/job_request.py +221 -0
- flywheel/models/job_request_item.py +246 -0
- flywheel/models/job_request_item_type.py +31 -0
- flywheel/models/job_request_target.py +270 -0
- flywheel/models/job_state.py +32 -0
- flywheel/models/job_state_counts.py +25 -0
- flywheel/models/job_stats_by_state.py +25 -0
- flywheel/models/job_ticket_output.py +165 -0
- flywheel/models/job_transition_times.py +253 -0
- flywheel/models/job_version_info.py +135 -0
- flywheel/models/jobs_by_state.py +272 -0
- flywheel/models/jobs_list.py +166 -0
- flywheel/models/join_origin_device.py +164 -0
- flywheel/models/join_origin_job.py +219 -0
- flywheel/models/join_origin_user.py +189 -0
- flywheel/models/join_origins.py +223 -0
- flywheel/models/join_type.py +28 -0
- flywheel/models/jupyterhub_workspace.py +163 -0
- flywheel/models/jupyterlab_server_modify.py +275 -0
- flywheel/models/jupyterlab_server_origin.py +25 -0
- flywheel/models/jupyterlab_server_output.py +25 -0
- flywheel/models/jupyterlab_server_response.py +415 -0
- flywheel/models/jupyterlab_server_update.py +25 -0
- flywheel/models/ldap_sync.py +36 -0
- flywheel/models/ldap_sync_config.py +163 -0
- flywheel/models/ldap_sync_input.py +36 -0
- flywheel/models/ldap_sync_status.py +250 -0
- flywheel/models/legacy_api_key_output.py +271 -0
- flywheel/models/legacy_input.py +244 -0
- flywheel/models/legacy_usage_report.py +309 -0
- flywheel/models/legacys_usage_project_entry.py +194 -0
- flywheel/models/libs_workflows_models_parent_type.py +33 -0
- flywheel/models/libs_workflows_models_task_status.py +32 -0
- flywheel/models/local_storage.py +217 -0
- flywheel/models/location.py +189 -0
- flywheel/models/locked.py +219 -0
- flywheel/models/master_subject_code_dob_input.py +279 -0
- flywheel/models/master_subject_code_input.py +281 -0
- flywheel/models/master_subject_code_output.py +166 -0
- flywheel/models/matched_acquisition_output.py +518 -0
- flywheel/models/mfa_channel.py +30 -0
- flywheel/models/mfa_settings.py +167 -0
- flywheel/models/mixins.py +794 -0
- flywheel/models/ml_set_filter.py +194 -0
- flywheel/models/ml_type.py +30 -0
- flywheel/models/modality.py +250 -0
- flywheel/models/modality_input.py +244 -0
- flywheel/models/modality_modify.py +218 -0
- flywheel/models/modality_output.py +271 -0
- flywheel/models/modified_result.py +190 -0
- flywheel/models/modify_user_input.py +466 -0
- flywheel/models/move_conflict.py +300 -0
- flywheel/models/note.py +391 -0
- flywheel/models/note_input.py +165 -0
- flywheel/models/optional_input_policy.py +30 -0
- flywheel/models/order.py +29 -0
- flywheel/models/organ_system.py +64 -0
- flywheel/models/origin.py +193 -0
- flywheel/models/origin_type.py +35 -0
- flywheel/models/orphaned_count.py +163 -0
- flywheel/models/output_user_page.py +219 -0
- flywheel/models/packfile_cleanup_output.py +166 -0
- flywheel/models/packfile_removed_output.py +189 -0
- flywheel/models/page.py +216 -0
- flywheel/models/page_generic_file_output.py +219 -0
- flywheel/models/page_generic_filter.py +219 -0
- flywheel/models/page_generic_form_response_output.py +219 -0
- flywheel/models/page_generic_protocol.py +244 -0
- flywheel/models/page_generic_reader_task_output.py +244 -0
- flywheel/models/page_generic_staffing_pool.py +244 -0
- flywheel/models/parsed_query_response.py +194 -0
- flywheel/models/permission_access_permission.py +25 -0
- flywheel/models/premade_jobs_batch_job_output.py +298 -0
- flywheel/models/premade_jobs_batch_job_output_inflated_jobs.py +299 -0
- flywheel/models/premade_jobs_batch_proposal.py +334 -0
- flywheel/models/premade_jobs_batch_proposal_detail.py +166 -0
- flywheel/models/premade_jobs_batch_proposal_input.py +166 -0
- flywheel/models/project.py +25 -0
- flywheel/models/project_acquisition_upsert_input.py +25 -0
- flywheel/models/project_acquisition_upsert_output.py +25 -0
- flywheel/models/project_aet.py +331 -0
- flywheel/models/project_aet_input.py +248 -0
- flywheel/models/project_catalog_list_output.py +25 -0
- flywheel/models/project_contact.py +194 -0
- flywheel/models/project_container_output.py +41 -0
- flywheel/models/project_copy_input.py +245 -0
- flywheel/models/project_copy_output.py +215 -0
- flywheel/models/project_counters.py +346 -0
- flywheel/models/project_hierarchy_input.py +278 -0
- flywheel/models/project_hierarchy_output.py +222 -0
- flywheel/models/project_hierarchy_upsert_input.py +25 -0
- flywheel/models/project_hierarchy_upsert_output.py +25 -0
- flywheel/models/project_input.py +384 -0
- flywheel/models/project_institution.py +194 -0
- flywheel/models/project_list_output.py +897 -0
- flywheel/models/project_locking_reason.py +32 -0
- flywheel/models/project_modify.py +413 -0
- flywheel/models/project_node.py +42 -0
- flywheel/models/project_output.py +899 -0
- flywheel/models/project_parents.py +168 -0
- flywheel/models/project_report.py +463 -0
- flywheel/models/project_report_list.py +167 -0
- flywheel/models/project_session_upsert_input.py +25 -0
- flywheel/models/project_session_upsert_output.py +25 -0
- flywheel/models/project_settings_input.py +333 -0
- flywheel/models/project_settings_output.py +333 -0
- flywheel/models/project_settings_sharing.py +327 -0
- flywheel/models/project_settings_sharing_input.py +334 -0
- flywheel/models/project_settings_workspaces.py +167 -0
- flywheel/models/project_settings_workspaces_input.py +167 -0
- flywheel/models/project_share_level.py +29 -0
- flywheel/models/project_sharing_settings_project_contact.py +25 -0
- flywheel/models/project_sharing_settings_project_counters.py +36 -0
- flywheel/models/project_sharing_settings_project_institution.py +25 -0
- flywheel/models/project_sharing_settings_project_settings_input.py +25 -0
- flywheel/models/project_sharing_settings_project_settings_output.py +25 -0
- flywheel/models/project_sharing_settings_project_settings_sharing.py +25 -0
- flywheel/models/project_sharing_settings_project_settings_sharing_input.py +25 -0
- flywheel/models/project_sharing_settings_project_stats.py +36 -0
- flywheel/models/project_stats.py +270 -0
- flywheel/models/project_subject_upsert_input.py +25 -0
- flywheel/models/project_subject_upsert_output.py +25 -0
- flywheel/models/project_template.py +195 -0
- flywheel/models/project_template_input.py +195 -0
- flywheel/models/project_template_list_input.py +166 -0
- flywheel/models/project_template_requirement.py +36 -0
- flywheel/models/project_template_session_template.py +36 -0
- flywheel/models/project_upsert_origin.py +36 -0
- flywheel/models/protocol.py +515 -0
- flywheel/models/protocol_e_signature_config.py +191 -0
- flywheel/models/protocol_input.py +354 -0
- flywheel/models/protocol_modify.py +277 -0
- flywheel/models/protocol_status.py +30 -0
- flywheel/models/provider.py +461 -0
- flywheel/models/provider_access_type.py +29 -0
- flywheel/models/provider_class.py +29 -0
- flywheel/models/provider_deletion_status.py +189 -0
- flywheel/models/provider_input.py +25 -0
- flywheel/models/provider_links.py +282 -0
- flywheel/models/provider_type.py +34 -0
- flywheel/models/providers.py +277 -0
- flywheel/models/reader_batch_create.py +463 -0
- flywheel/models/reader_task.py +725 -0
- flywheel/models/reader_task_config.py +189 -0
- flywheel/models/reader_task_create.py +543 -0
- flywheel/models/reader_task_modify.py +303 -0
- flywheel/models/reader_task_output.py +752 -0
- flywheel/models/reader_task_parent_details.py +322 -0
- flywheel/models/report_access_log_context.py +301 -0
- flywheel/models/report_access_log_context_entry.py +194 -0
- flywheel/models/report_access_log_context_file_entry.py +165 -0
- flywheel/models/report_access_log_entry.py +624 -0
- flywheel/models/report_access_log_origin.py +194 -0
- flywheel/models/report_availability_list.py +167 -0
- flywheel/models/report_daily_usage_entry.py +501 -0
- flywheel/models/report_demographics_grid.py +36 -0
- flywheel/models/report_ethnicity_grid.py +252 -0
- flywheel/models/report_gender_count.py +222 -0
- flywheel/models/report_group_report.py +217 -0
- flywheel/models/report_legacy_usage_entry.py +36 -0
- flywheel/models/report_legacy_usage_project_entry.py +36 -0
- flywheel/models/report_project.py +25 -0
- flywheel/models/report_site.py +192 -0
- flywheel/models/report_time_period.py +193 -0
- flywheel/models/report_usage.py +630 -0
- flywheel/models/report_usage_entry.py +25 -0
- flywheel/models/resolve_input.py +163 -0
- flywheel/models/resolve_output.py +194 -0
- flywheel/models/resolver_acquisition_node.py +36 -0
- flywheel/models/resolver_analysis_node.py +36 -0
- flywheel/models/resolver_file_node.py +36 -0
- flywheel/models/resolver_gear_node.py +36 -0
- flywheel/models/resolver_group_node.py +36 -0
- flywheel/models/resolver_input.py +25 -0
- flywheel/models/resolver_node.py +182 -0
- flywheel/models/resolver_output.py +25 -0
- flywheel/models/resolver_project_node.py +36 -0
- flywheel/models/resolver_session_node.py +36 -0
- flywheel/models/resolver_subject_node.py +36 -0
- flywheel/models/role_input.py +192 -0
- flywheel/models/role_output.py +273 -0
- flywheel/models/role_permission.py +194 -0
- flywheel/models/role_permission_output.py +189 -0
- flywheel/models/role_permission_update.py +163 -0
- flywheel/models/role_type.py +32 -0
- flywheel/models/role_update.py +194 -0
- flywheel/models/roles_backwards_compatible_role_assignment.py +36 -0
- flywheel/models/roles_group_role_pool_input.py +36 -0
- flywheel/models/roles_role.py +36 -0
- flywheel/models/roles_role_assignment.py +195 -0
- flywheel/models/roles_role_input.py +36 -0
- flywheel/models/rule.py +467 -0
- flywheel/models/rule_any.py +216 -0
- flywheel/models/s3_addressing_style.py +29 -0
- flywheel/models/s3_compat_storage.py +381 -0
- flywheel/models/save_search.py +298 -0
- flywheel/models/save_search_input.py +219 -0
- flywheel/models/save_search_output.py +301 -0
- flywheel/models/save_search_page.py +219 -0
- flywheel/models/save_search_parent.py +192 -0
- flywheel/models/save_search_update.py +194 -0
- flywheel/models/search_acquisition_response.py +252 -0
- flywheel/models/search_analysis_response.py +254 -0
- flywheel/models/search_collection_response.py +254 -0
- flywheel/models/search_file_response.py +312 -0
- flywheel/models/search_group_response.py +196 -0
- flywheel/models/search_parent_acquisition.py +47 -0
- flywheel/models/search_parent_analysis.py +47 -0
- flywheel/models/search_parent_collection.py +46 -0
- flywheel/models/search_parent_project.py +54 -0
- flywheel/models/search_parent_response.py +213 -0
- flywheel/models/search_parent_session.py +48 -0
- flywheel/models/search_parent_subject.py +48 -0
- flywheel/models/search_parse_error.py +252 -0
- flywheel/models/search_parse_search_query_result.py +36 -0
- flywheel/models/search_project_response.py +196 -0
- flywheel/models/search_query.py +337 -0
- flywheel/models/search_query_suggestions.py +36 -0
- flywheel/models/search_response.py +448 -0
- flywheel/models/search_return_type.py +33 -0
- flywheel/models/search_save_search.py +36 -0
- flywheel/models/search_save_search_input.py +36 -0
- flywheel/models/search_save_search_parent.py +36 -0
- flywheel/models/search_save_search_update.py +36 -0
- flywheel/models/search_session_response.py +252 -0
- flywheel/models/search_status.py +166 -0
- flywheel/models/search_structured_search_query.py +25 -0
- flywheel/models/search_subject_response.py +225 -0
- flywheel/models/search_suggestion.py +36 -0
- flywheel/models/select_item.py +190 -0
- flywheel/models/server_state.py +303 -0
- flywheel/models/service_aet.py +301 -0
- flywheel/models/service_aet_input.py +276 -0
- flywheel/models/session.py +25 -0
- flywheel/models/session_container_output.py +35 -0
- flywheel/models/session_copy_input.py +253 -0
- flywheel/models/session_embedded_subject.py +299 -0
- flywheel/models/session_input.py +431 -0
- flywheel/models/session_list_output.py +897 -0
- flywheel/models/session_metadata_input.py +36 -0
- flywheel/models/session_modify.py +464 -0
- flywheel/models/session_node.py +36 -0
- flywheel/models/session_output.py +897 -0
- flywheel/models/session_parents.py +220 -0
- flywheel/models/session_template_options.py +221 -0
- flywheel/models/session_template_recalc_output.py +165 -0
- flywheel/models/session_upsert_input.py +464 -0
- flywheel/models/session_upsert_output.py +243 -0
- flywheel/models/sharing_filter_options.py +345 -0
- flywheel/models/signed_fs_upload_output.py +189 -0
- flywheel/models/signed_url_cleanup_input.py +189 -0
- flywheel/models/signed_url_upload_input.py +190 -0
- flywheel/models/signed_url_upload_output.py +349 -0
- flywheel/models/site.py +623 -0
- flywheel/models/site_report.py +194 -0
- flywheel/models/site_settings.py +385 -0
- flywheel/models/sort.py +192 -0
- flywheel/models/stable_api_key_input.py +25 -0
- flywheel/models/staffing_pool.py +324 -0
- flywheel/models/staffing_pool_create.py +216 -0
- flywheel/models/staffing_pool_list.py +164 -0
- flywheel/models/staffing_pool_modify.py +218 -0
- flywheel/models/state.py +32 -0
- flywheel/models/static_compute.py +218 -0
- flywheel/models/status_transitions.py +245 -0
- flywheel/models/status_type.py +31 -0
- flywheel/models/status_value.py +31 -0
- flywheel/models/storage_strategy.py +30 -0
- flywheel/models/storage_strategy_config.py +194 -0
- flywheel/models/structured_query.py +165 -0
- flywheel/models/structured_query_suggestions.py +196 -0
- flywheel/models/structured_query_value_suggestion.py +247 -0
- flywheel/models/subject.py +34 -0
- flywheel/models/subject_container_output.py +36 -0
- flywheel/models/subject_copy_input.py +223 -0
- flywheel/models/subject_input.py +627 -0
- flywheel/models/subject_modify.py +684 -0
- flywheel/models/subject_node.py +37 -0
- flywheel/models/subject_output.py +1008 -0
- flywheel/models/subject_output_for_list.py +1005 -0
- flywheel/models/subject_parents.py +194 -0
- flywheel/models/subject_role_permission.py +194 -0
- flywheel/models/subject_state.py +30 -0
- flywheel/models/subject_template_options.py +191 -0
- flywheel/models/subject_upsert_input.py +573 -0
- flywheel/models/subject_upsert_output.py +216 -0
- flywheel/models/sync_user_input.py +322 -0
- flywheel/models/tag.py +165 -0
- flywheel/models/task_assign.py +194 -0
- flywheel/models/task_facet.py +29 -0
- flywheel/models/task_parent_ref.py +245 -0
- flywheel/models/task_parent_ref_input.py +219 -0
- flywheel/models/task_priority.py +31 -0
- flywheel/models/task_submission.py +189 -0
- flywheel/models/therapeutic_area.py +60 -0
- flywheel/models/transitions.py +272 -0
- flywheel/models/tree_container_request_spec.py +281 -0
- flywheel/models/tree_graph.py +142 -0
- flywheel/models/tree_graph_connection.py +244 -0
- flywheel/models/tree_graph_connections.py +142 -0
- flywheel/models/tree_graph_node.py +166 -0
- flywheel/models/tree_request.py +25 -0
- flywheel/models/tree_response_item.py +142 -0
- flywheel/models/type_str.py +31 -0
- flywheel/models/uid_check_input_acquisitions.py +244 -0
- flywheel/models/uid_check_input_sessions.py +244 -0
- flywheel/models/uid_check_output.py +191 -0
- flywheel/models/upload_complete_s3_multipart_input.py +25 -0
- flywheel/models/upload_complete_s3_multipart_output.py +25 -0
- flywheel/models/upload_signed_fs_file_upload_output.py +36 -0
- flywheel/models/upload_signed_upload_url_input.py +36 -0
- flywheel/models/upload_signed_upload_url_output.py +36 -0
- flywheel/models/upload_ticket_output.py +215 -0
- flywheel/models/upload_token_output.py +163 -0
- flywheel/models/upsert_result.py +31 -0
- flywheel/models/user.py +760 -0
- flywheel/models/user_api_key.py +220 -0
- flywheel/models/user_input.py +461 -0
- flywheel/models/user_jobs.py +219 -0
- flywheel/models/user_jobs_output.py +25 -0
- flywheel/models/user_output.py +36 -0
- flywheel/models/user_output_id.py +163 -0
- flywheel/models/user_preferences.py +135 -0
- flywheel/models/user_wechat.py +135 -0
- flywheel/models/validation_error.py +215 -0
- flywheel/models/validation_rule.py +190 -0
- flywheel/models/version.py +363 -0
- flywheel/models/version_output.py +25 -0
- flywheel/models/view_id_output.py +164 -0
- flywheel/models/view_output.py +440 -0
- flywheel/models/viewer_app.py +381 -0
- flywheel/models/viewer_app_input.py +382 -0
- flywheel/models/viewer_app_type.py +29 -0
- flywheel/models/virus_scan.py +166 -0
- flywheel/models/virus_scan_state.py +30 -0
- flywheel/models/work_in_progress_features.py +135 -0
- flywheel/models/zipfile_info.py +192 -0
- flywheel/models/zipfile_member_info.py +241 -0
- flywheel/partial_reader.py +50 -0
- flywheel/rest.py +352 -0
- flywheel/util.py +95 -0
- flywheel/view_builder.py +449 -0
- flywheel_sdk-21.2.0rc0.dist-info/METADATA +41 -0
- flywheel_sdk-21.2.0rc0.dist-info/RECORD +772 -0
- flywheel_sdk-21.2.0rc0.dist-info/WHEEL +4 -0
- flywheel_sdk-21.2.0rc0.dist-info/licenses/LICENSE.txt +18 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"""Provides gear mixin"""
|
|
2
|
+
|
|
3
|
+
from .gear_invocation import GearInvocation
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class GearMixin(object):
|
|
7
|
+
"""Gear mixin that provides additional functionality"""
|
|
8
|
+
|
|
9
|
+
def __init__(self):
|
|
10
|
+
self.__context = None
|
|
11
|
+
|
|
12
|
+
def _set_context(self, context):
|
|
13
|
+
"""Set the context object (i.e. flywheel client instance)"""
|
|
14
|
+
self.__context = context
|
|
15
|
+
|
|
16
|
+
def _invoke_gear_api(self, fname, *args, **kwargs):
|
|
17
|
+
"""Invoke gear api"""
|
|
18
|
+
if self.__context:
|
|
19
|
+
fn = getattr(self.__context, fname, None)
|
|
20
|
+
if fn:
|
|
21
|
+
return fn(self.gear.name, *args, **kwargs)
|
|
22
|
+
return None
|
|
23
|
+
|
|
24
|
+
def create_invocation(self):
|
|
25
|
+
"""Create a job invocation object"""
|
|
26
|
+
result = GearInvocation(self)
|
|
27
|
+
result._set_context(self.__context)
|
|
28
|
+
return result
|
|
29
|
+
|
|
30
|
+
def is_analysis_gear(self):
|
|
31
|
+
"""Check if this is an analysis gear"""
|
|
32
|
+
return self.category == "analysis"
|
|
33
|
+
|
|
34
|
+
def print_details(self, width=90):
|
|
35
|
+
"""Print details about a gear to stdout
|
|
36
|
+
|
|
37
|
+
:param int width: The maximum line width for printing
|
|
38
|
+
"""
|
|
39
|
+
import textwrap
|
|
40
|
+
|
|
41
|
+
def print_wrap(s, **kwargs):
|
|
42
|
+
print(textwrap.fill(s, width=width, **kwargs))
|
|
43
|
+
|
|
44
|
+
def print_col(label, value):
|
|
45
|
+
line = "{:<15} {}".format(label + ":", value)
|
|
46
|
+
print(textwrap.fill(line, width=width, subsequent_indent=(" " * 16)))
|
|
47
|
+
|
|
48
|
+
gear = self.gear
|
|
49
|
+
|
|
50
|
+
print_wrap(gear.label or gear.name)
|
|
51
|
+
|
|
52
|
+
if gear.description:
|
|
53
|
+
print("")
|
|
54
|
+
print_wrap(gear.description, subsequent_indent=" ")
|
|
55
|
+
print("")
|
|
56
|
+
|
|
57
|
+
print_col("Name", gear.name)
|
|
58
|
+
print_col("Version", gear.version)
|
|
59
|
+
print_col("Category", self.category)
|
|
60
|
+
|
|
61
|
+
if gear.author:
|
|
62
|
+
print_col("Author", gear.author)
|
|
63
|
+
|
|
64
|
+
if gear.maintainer:
|
|
65
|
+
print_col("Maintainer", gear.maintainer)
|
|
66
|
+
|
|
67
|
+
if gear.url:
|
|
68
|
+
print_col("URL", gear.url)
|
|
69
|
+
|
|
70
|
+
if gear.source:
|
|
71
|
+
print_col("Source", gear.source)
|
|
72
|
+
|
|
73
|
+
print("")
|
|
74
|
+
|
|
75
|
+
if gear.inputs:
|
|
76
|
+
print("Inputs:")
|
|
77
|
+
for key, spec in gear.inputs.items():
|
|
78
|
+
if spec.get("optional", False):
|
|
79
|
+
opt = "optional"
|
|
80
|
+
else:
|
|
81
|
+
opt = "required"
|
|
82
|
+
|
|
83
|
+
print(" {} ({}, {})".format(key, spec.get("base", "unspecified"), opt))
|
|
84
|
+
if "type" in spec and "enum" in spec["type"]:
|
|
85
|
+
types = ", ".join(spec["type"]["enum"])
|
|
86
|
+
print(" Type: {}".format(types))
|
|
87
|
+
if "description" in spec:
|
|
88
|
+
print_wrap(
|
|
89
|
+
spec["description"],
|
|
90
|
+
initial_indent=" ",
|
|
91
|
+
subsequent_indent=" ",
|
|
92
|
+
)
|
|
93
|
+
print("")
|
|
94
|
+
|
|
95
|
+
if gear.config:
|
|
96
|
+
print("Configuration:")
|
|
97
|
+
for key, spec in gear.config.items():
|
|
98
|
+
if "default" in spec:
|
|
99
|
+
dflt = ", default: {}".format(spec["default"])
|
|
100
|
+
else:
|
|
101
|
+
dflt = ""
|
|
102
|
+
print(" {} ({}{})".format(key, spec.get("type", "unspecified"), dflt))
|
|
103
|
+
if "description" in spec:
|
|
104
|
+
print_wrap(
|
|
105
|
+
spec["description"],
|
|
106
|
+
initial_indent=" ",
|
|
107
|
+
subsequent_indent=" ",
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
def get_default_config(self):
|
|
111
|
+
"""Get the default configuration for gear"""
|
|
112
|
+
config = self.gear.get("config", {})
|
|
113
|
+
default_config = {}
|
|
114
|
+
for key, value in config.items():
|
|
115
|
+
if value.get("default") is not None:
|
|
116
|
+
default_config[key] = value.get("default")
|
|
117
|
+
return default_config
|
|
118
|
+
|
|
119
|
+
def run(self, config=None, analysis_label=None, tags=None, destination=None, inputs=None, priority=None, **kwargs):
|
|
120
|
+
"""Run the gear.
|
|
121
|
+
|
|
122
|
+
:param dict config: The configuration to use, if overriding defaults.
|
|
123
|
+
:param str analysis_label: The label of the analysis, if running an analysis gear.
|
|
124
|
+
:param list tags: The list of tags to set for the job.
|
|
125
|
+
:param object destination: The destination container.
|
|
126
|
+
:param dict inputs: The list of input containers or files.
|
|
127
|
+
|
|
128
|
+
:return: The id of the job that was created (utility gear) or of the analysis container created (analysis gear).
|
|
129
|
+
"""
|
|
130
|
+
invocation = self.create_invocation()
|
|
131
|
+
|
|
132
|
+
if config is not None:
|
|
133
|
+
invocation.update_config(config)
|
|
134
|
+
if analysis_label is not None:
|
|
135
|
+
invocation.set_analysis_label(analysis_label)
|
|
136
|
+
if tags is not None:
|
|
137
|
+
invocation.add_tags(tags)
|
|
138
|
+
if destination is not None:
|
|
139
|
+
invocation.set_destination(destination)
|
|
140
|
+
if priority is not None:
|
|
141
|
+
invocation.set_priority(priority)
|
|
142
|
+
|
|
143
|
+
# Combine inputs and kwargs into inputs
|
|
144
|
+
if inputs is not None:
|
|
145
|
+
kwargs.update(inputs)
|
|
146
|
+
for key, input in kwargs.items():
|
|
147
|
+
invocation.set_input(key, input)
|
|
148
|
+
|
|
149
|
+
return invocation.run()
|
|
150
|
+
|
|
151
|
+
def propose_batch(
|
|
152
|
+
self,
|
|
153
|
+
containers,
|
|
154
|
+
config=None,
|
|
155
|
+
analysis_label=None,
|
|
156
|
+
tags=None,
|
|
157
|
+
priority=None,
|
|
158
|
+
optional_input_policy="ignored",
|
|
159
|
+
):
|
|
160
|
+
"""Propose a batch run of the gear.
|
|
161
|
+
|
|
162
|
+
:param list containers: The list of targets.
|
|
163
|
+
:param dict config: The configuration to use, if overriding defaults.
|
|
164
|
+
:param str analysis_label: The label of the analysis, if running an analysis gear.
|
|
165
|
+
:param list tags: The list of tags to set for the job.
|
|
166
|
+
:param str priority: The priority of the job.
|
|
167
|
+
:param str optional_input_policy: The optional input policy, default is 'ignored'
|
|
168
|
+
|
|
169
|
+
:return: The batch proposal, which can be started with proposal.run()
|
|
170
|
+
"""
|
|
171
|
+
invocation = self.create_invocation()
|
|
172
|
+
|
|
173
|
+
if config is not None:
|
|
174
|
+
invocation.update_config(config)
|
|
175
|
+
if analysis_label is not None:
|
|
176
|
+
invocation.set_analysis_label(analysis_label)
|
|
177
|
+
if tags is not None:
|
|
178
|
+
invocation.add_tags(tags)
|
|
179
|
+
if priority is not None:
|
|
180
|
+
invocation.set_priority(priority)
|
|
181
|
+
|
|
182
|
+
return invocation.propose_batch(containers, optional_input_policy=optional_input_policy)
|
|
183
|
+
|
|
184
|
+
def get_series(self):
|
|
185
|
+
"""Get gear series by gear name."""
|
|
186
|
+
return self._invoke_gear_api("get_gear_series")
|
|
187
|
+
|
|
188
|
+
def add_permission(self, permission_type, permission_id):
|
|
189
|
+
"""Add individual permission to gear."""
|
|
190
|
+
return self._invoke_gear_api("add_gear_permission", permission_type, permission_id)
|
|
191
|
+
|
|
192
|
+
def replace_permissions(self, permissions):
|
|
193
|
+
"""Replace gear permissions."""
|
|
194
|
+
return self._invoke_gear_api("replace_gear_permissions", permissions)
|
|
195
|
+
|
|
196
|
+
def delete_permission(self, permission_type, permission_id):
|
|
197
|
+
"""Delete individual permission by type and id"""
|
|
198
|
+
self._invoke_gear_api("delete_gear_permission", permission_type, permission_id)
|
|
199
|
+
|
|
200
|
+
def delete_all_permissions(self):
|
|
201
|
+
"""
|
|
202
|
+
Delete gear all permissions. Also sets `is_restricted` on the gear
|
|
203
|
+
series to `False`.
|
|
204
|
+
"""
|
|
205
|
+
self._invoke_gear_api("delete_gear_permissions")
|
|
206
|
+
|
|
207
|
+
def modify_gear_series(self, gear_series_update):
|
|
208
|
+
"""
|
|
209
|
+
Modify the gear series attributes such as `is_restricted`
|
|
210
|
+
|
|
211
|
+
:param GearSeriesUpdate gear_series_update: the dictionary specifying
|
|
212
|
+
the updates to make to the gear series
|
|
213
|
+
|
|
214
|
+
Example::
|
|
215
|
+
update_dict = {"is_restricted": True}
|
|
216
|
+
gear.modify_gear_series(update_dict)
|
|
217
|
+
"""
|
|
218
|
+
return self._invoke_gear_api("modify_gear_series", gear_series_update)
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Flywheel
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: 0.0.1
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## NOTE: This file is auto generated by the swagger code generator program.
|
|
15
|
+
## Do not edit the file manually.
|
|
16
|
+
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import six
|
|
20
|
+
from typing import TYPE_CHECKING
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING:
|
|
23
|
+
from flywheel.models.gear_category import GearCategory # noqa: F401,E501
|
|
24
|
+
from flywheel.models.gear_document import GearDocument # noqa: F401,E501
|
|
25
|
+
from flywheel.models.gear_exchange import GearExchange # noqa: F401,E501
|
|
26
|
+
from flywheel.models.gear_manifest import GearManifest # noqa: F401,E501
|
|
27
|
+
from flywheel.models.resolver_node import ResolverNode # noqa: F401,E501
|
|
28
|
+
|
|
29
|
+
from .mixins import GearMixin
|
|
30
|
+
class GearNode(GearMixin):
|
|
31
|
+
|
|
32
|
+
swagger_types = {
|
|
33
|
+
'container_type': 'str',
|
|
34
|
+
'category': 'GearCategory',
|
|
35
|
+
'gear': 'GearManifest',
|
|
36
|
+
'exchange': 'GearExchange',
|
|
37
|
+
'created': 'datetime',
|
|
38
|
+
'modified': 'datetime',
|
|
39
|
+
'disabled': 'datetime',
|
|
40
|
+
'id': 'str'
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
attribute_map = {
|
|
44
|
+
'container_type': 'container_type',
|
|
45
|
+
'category': 'category',
|
|
46
|
+
'gear': 'gear',
|
|
47
|
+
'exchange': 'exchange',
|
|
48
|
+
'created': 'created',
|
|
49
|
+
'modified': 'modified',
|
|
50
|
+
'disabled': 'disabled',
|
|
51
|
+
'id': '_id'
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
rattribute_map = {
|
|
55
|
+
'container_type': 'container_type',
|
|
56
|
+
'category': 'category',
|
|
57
|
+
'gear': 'gear',
|
|
58
|
+
'exchange': 'exchange',
|
|
59
|
+
'created': 'created',
|
|
60
|
+
'modified': 'modified',
|
|
61
|
+
'disabled': 'disabled',
|
|
62
|
+
'_id': 'id'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
def __init__(self, container_type=None, category=None, gear=None, exchange=None, created=None, modified=None, disabled=None, id=None): # noqa: E501
|
|
66
|
+
"""GearNode - a model defined in Swagger"""
|
|
67
|
+
super(GearNode, self).__init__()
|
|
68
|
+
|
|
69
|
+
self._container_type = None
|
|
70
|
+
self._category = None
|
|
71
|
+
self._gear = None
|
|
72
|
+
self._exchange = None
|
|
73
|
+
self._created = None
|
|
74
|
+
self._modified = None
|
|
75
|
+
self._disabled = None
|
|
76
|
+
self._id = None
|
|
77
|
+
self.discriminator = None
|
|
78
|
+
self.alt_discriminator = None
|
|
79
|
+
|
|
80
|
+
self.container_type = container_type
|
|
81
|
+
if category is not None:
|
|
82
|
+
self.category = category
|
|
83
|
+
self.gear = gear
|
|
84
|
+
self.exchange = exchange
|
|
85
|
+
self.created = created
|
|
86
|
+
self.modified = modified
|
|
87
|
+
if disabled is not None:
|
|
88
|
+
self.disabled = disabled
|
|
89
|
+
self.id = id
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def container_type(self):
|
|
93
|
+
"""Gets the container_type of this GearNode.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
:return: The container_type of this GearNode.
|
|
97
|
+
:rtype: str
|
|
98
|
+
"""
|
|
99
|
+
return self._container_type
|
|
100
|
+
|
|
101
|
+
@container_type.setter
|
|
102
|
+
def container_type(self, container_type):
|
|
103
|
+
"""Sets the container_type of this GearNode.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
:param container_type: The container_type of this GearNode. # noqa: E501
|
|
107
|
+
:type: str
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
self._container_type = container_type
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def category(self):
|
|
114
|
+
"""Gets the category of this GearNode.
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
:return: The category of this GearNode.
|
|
118
|
+
:rtype: GearCategory
|
|
119
|
+
"""
|
|
120
|
+
return self._category
|
|
121
|
+
|
|
122
|
+
@category.setter
|
|
123
|
+
def category(self, category):
|
|
124
|
+
"""Sets the category of this GearNode.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
:param category: The category of this GearNode. # noqa: E501
|
|
128
|
+
:type: GearCategory
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
self._category = category
|
|
132
|
+
|
|
133
|
+
@property
|
|
134
|
+
def gear(self):
|
|
135
|
+
"""Gets the gear of this GearNode.
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
:return: The gear of this GearNode.
|
|
139
|
+
:rtype: GearManifest
|
|
140
|
+
"""
|
|
141
|
+
return self._gear
|
|
142
|
+
|
|
143
|
+
@gear.setter
|
|
144
|
+
def gear(self, gear):
|
|
145
|
+
"""Sets the gear of this GearNode.
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
:param gear: The gear of this GearNode. # noqa: E501
|
|
149
|
+
:type: GearManifest
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
self._gear = gear
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def exchange(self):
|
|
156
|
+
"""Gets the exchange of this GearNode.
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
:return: The exchange of this GearNode.
|
|
160
|
+
:rtype: GearExchange
|
|
161
|
+
"""
|
|
162
|
+
return self._exchange
|
|
163
|
+
|
|
164
|
+
@exchange.setter
|
|
165
|
+
def exchange(self, exchange):
|
|
166
|
+
"""Sets the exchange of this GearNode.
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
:param exchange: The exchange of this GearNode. # noqa: E501
|
|
170
|
+
:type: GearExchange
|
|
171
|
+
"""
|
|
172
|
+
|
|
173
|
+
self._exchange = exchange
|
|
174
|
+
|
|
175
|
+
@property
|
|
176
|
+
def created(self):
|
|
177
|
+
"""Gets the created of this GearNode.
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
:return: The created of this GearNode.
|
|
181
|
+
:rtype: datetime
|
|
182
|
+
"""
|
|
183
|
+
return self._created
|
|
184
|
+
|
|
185
|
+
@created.setter
|
|
186
|
+
def created(self, created):
|
|
187
|
+
"""Sets the created of this GearNode.
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
:param created: The created of this GearNode. # noqa: E501
|
|
191
|
+
:type: datetime
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
self._created = created
|
|
195
|
+
|
|
196
|
+
@property
|
|
197
|
+
def modified(self):
|
|
198
|
+
"""Gets the modified of this GearNode.
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
:return: The modified of this GearNode.
|
|
202
|
+
:rtype: datetime
|
|
203
|
+
"""
|
|
204
|
+
return self._modified
|
|
205
|
+
|
|
206
|
+
@modified.setter
|
|
207
|
+
def modified(self, modified):
|
|
208
|
+
"""Sets the modified of this GearNode.
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
:param modified: The modified of this GearNode. # noqa: E501
|
|
212
|
+
:type: datetime
|
|
213
|
+
"""
|
|
214
|
+
|
|
215
|
+
self._modified = modified
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def disabled(self):
|
|
219
|
+
"""Gets the disabled of this GearNode.
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
:return: The disabled of this GearNode.
|
|
223
|
+
:rtype: datetime
|
|
224
|
+
"""
|
|
225
|
+
return self._disabled
|
|
226
|
+
|
|
227
|
+
@disabled.setter
|
|
228
|
+
def disabled(self, disabled):
|
|
229
|
+
"""Sets the disabled of this GearNode.
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
:param disabled: The disabled of this GearNode. # noqa: E501
|
|
233
|
+
:type: datetime
|
|
234
|
+
"""
|
|
235
|
+
|
|
236
|
+
self._disabled = disabled
|
|
237
|
+
|
|
238
|
+
@property
|
|
239
|
+
def id(self):
|
|
240
|
+
"""Gets the id of this GearNode.
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
:return: The id of this GearNode.
|
|
244
|
+
:rtype: str
|
|
245
|
+
"""
|
|
246
|
+
return self._id
|
|
247
|
+
|
|
248
|
+
@id.setter
|
|
249
|
+
def id(self, id):
|
|
250
|
+
"""Sets the id of this GearNode.
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
:param id: The id of this GearNode. # noqa: E501
|
|
254
|
+
:type: str
|
|
255
|
+
"""
|
|
256
|
+
|
|
257
|
+
self._id = id
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
@staticmethod
|
|
261
|
+
def positional_to_model(value):
|
|
262
|
+
"""Converts a positional argument to a model value"""
|
|
263
|
+
return value
|
|
264
|
+
|
|
265
|
+
def return_value(self):
|
|
266
|
+
"""Unwraps return value from model"""
|
|
267
|
+
return self
|
|
268
|
+
|
|
269
|
+
def to_dict(self):
|
|
270
|
+
"""Returns the model properties as a dict"""
|
|
271
|
+
result = {}
|
|
272
|
+
|
|
273
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
274
|
+
value = getattr(self, attr)
|
|
275
|
+
if isinstance(value, list):
|
|
276
|
+
result[attr] = list(map(
|
|
277
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
278
|
+
value
|
|
279
|
+
))
|
|
280
|
+
elif hasattr(value, "to_dict"):
|
|
281
|
+
result[attr] = value.to_dict()
|
|
282
|
+
elif isinstance(value, dict):
|
|
283
|
+
result[attr] = dict(map(
|
|
284
|
+
lambda item: (item[0], item[1].to_dict())
|
|
285
|
+
if hasattr(item[1], "to_dict") else item,
|
|
286
|
+
value.items()
|
|
287
|
+
))
|
|
288
|
+
else:
|
|
289
|
+
result[attr] = value
|
|
290
|
+
|
|
291
|
+
return result
|
|
292
|
+
|
|
293
|
+
def to_str(self):
|
|
294
|
+
"""Returns the string representation of the model"""
|
|
295
|
+
return pprint.pformat(self.to_dict())
|
|
296
|
+
|
|
297
|
+
def __repr__(self):
|
|
298
|
+
"""For `print` and `pprint`"""
|
|
299
|
+
return self.to_str()
|
|
300
|
+
|
|
301
|
+
def __eq__(self, other):
|
|
302
|
+
"""Returns true if both objects are equal"""
|
|
303
|
+
if not isinstance(other, GearNode):
|
|
304
|
+
return False
|
|
305
|
+
|
|
306
|
+
return self.__dict__ == other.__dict__
|
|
307
|
+
|
|
308
|
+
def __ne__(self, other):
|
|
309
|
+
"""Returns true if both objects are not equal"""
|
|
310
|
+
return not self == other
|
|
311
|
+
|
|
312
|
+
# Container emulation
|
|
313
|
+
def __getitem__(self, key):
|
|
314
|
+
"""Returns the value of key"""
|
|
315
|
+
key = self._map_key(key)
|
|
316
|
+
return getattr(self, key)
|
|
317
|
+
|
|
318
|
+
def __setitem__(self, key, value):
|
|
319
|
+
"""Sets the value of key"""
|
|
320
|
+
key = self._map_key(key)
|
|
321
|
+
setattr(self, key, value)
|
|
322
|
+
|
|
323
|
+
def __contains__(self, key):
|
|
324
|
+
"""Checks if the given value is a key in this object"""
|
|
325
|
+
key = self._map_key(key, raise_on_error=False)
|
|
326
|
+
return key is not None
|
|
327
|
+
|
|
328
|
+
def keys(self):
|
|
329
|
+
"""Returns the list of json properties in the object"""
|
|
330
|
+
return self.__class__.rattribute_map.keys()
|
|
331
|
+
|
|
332
|
+
def values(self):
|
|
333
|
+
"""Returns the list of values in the object"""
|
|
334
|
+
for key in self.__class__.attribute_map.keys():
|
|
335
|
+
yield getattr(self, key)
|
|
336
|
+
|
|
337
|
+
def items(self):
|
|
338
|
+
"""Returns the list of json property to value mapping"""
|
|
339
|
+
for key, prop in self.__class__.rattribute_map.items():
|
|
340
|
+
yield key, getattr(self, prop)
|
|
341
|
+
|
|
342
|
+
def get(self, key, default=None):
|
|
343
|
+
"""Get the value of the provided json property, or default"""
|
|
344
|
+
key = self._map_key(key, raise_on_error=False)
|
|
345
|
+
if key:
|
|
346
|
+
return getattr(self, key, default)
|
|
347
|
+
return default
|
|
348
|
+
|
|
349
|
+
def _map_key(self, key, raise_on_error=True):
|
|
350
|
+
result = self.__class__.rattribute_map.get(key)
|
|
351
|
+
if result is None:
|
|
352
|
+
if raise_on_error:
|
|
353
|
+
raise AttributeError('Invalid attribute name: {}'.format(key))
|
|
354
|
+
return None
|
|
355
|
+
return '_' + result
|