annofabapi 1.7.0__tar.gz → 1.7.2__tar.gz
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.
- {annofabapi-1.7.0 → annofabapi-1.7.2}/PKG-INFO +1 -1
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/generated_api.py +1 -2
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/attribute_restrictions.py +250 -3
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/annotation.py +1 -1
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/annotation_specs.py +1 -1
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/swagger/swagger.v2.yaml +1 -1
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/swagger/swagger.yaml +2 -10
- {annofabapi-1.7.0 → annofabapi-1.7.2}/pyproject.toml +1 -1
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/util/test_attribute_restrictions.py +64 -0
- annofabapi-1.7.2/uv.lock +1805 -0
- annofabapi-1.7.0/uv.lock +0 -1739
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.agents/skills/python-coding-style/SKILL.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.agents/skills/test-writing/SKILL.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.codex/config.toml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.devcontainer/.extensions/.gitignore +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.devcontainer/Dockerfile +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.devcontainer/devcontainer.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.devcontainer/entrypoint.sh +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/copilot-instructions.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/dependabot.yml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/workflows/codeql-analysis.yml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/workflows/codeql.yml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/workflows/lint-test.yml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.github/workflows/publish-to-pypi.yml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.gitignore +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.readthedocs.yaml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.vscode/cspell.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/.vscode/settings.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/AGENTS.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/LICENSE +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/Makefile +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/README.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/README_for_developer.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/_utils.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/api.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/api2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/credentials.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/annotation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/job.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/organization.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/organization_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/project_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/supplementary.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/dataclass/task.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/exceptions.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/generated_api2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/models.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/parser.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/plugin.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/project_member_repository.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/py.typed +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/accept_organization_invitation_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/account.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/account_worktime_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/action_required.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_default_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_definition_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_definition_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_definition_v1_choices_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_definition_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_can_input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_equals.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_has_label.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_imply.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_matches.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_not_equals.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_restriction_condition_not_matches.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_choice.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_flag.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_integer.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_link.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_select.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_text.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/additional_data_value_tracking.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/aggregation_result.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/all_oidc_endpoints.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_data_holding_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_data_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_input_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_input_outer.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_output.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_output_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_output_inner_unknown.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_output_outer.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_content_output_outer_unresolved.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_create.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_get.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_import.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_output.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_detail_v2_update.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_editor_feature.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_output.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_props_for_editor.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_query.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_movie_option.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_option.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_request_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_request_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_request_v3.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_specs_v3.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_detail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_detail_failed.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_detail_image_slice.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_detail_unsupported.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_image.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_thumbnail_image_source.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_annotation_editor_feature.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_display_line_direction.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_margin_of_error_tolerance.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_minimum_area2d.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_minimum_size2d.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_minimum_size2d_with_default_insert_position.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_one_boolean_field.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_one_integer_field.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_one_string_field.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_definition_vertex_count_min_max.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_min_warn_rule.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_annotation_editor_feature.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_display_line_direction.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_empty_field_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_margin_of_error_tolerance.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_minimum_area2d.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_minimum_size.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_minimum_size2d_with_default_insert_position.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_one_boolean_field_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_one_integer_field_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_one_string_field_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_type_field_value_vertex_count_min_max.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_v2_input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotation_v2_output.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/annotations_by_input_data_id_identifier.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/assignee_rule_of_resubmitted_task.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_request_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_request_item_delete.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_request_item_put_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_request_item_put_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_annotation_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_comment_request_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_comment_request_item_delete.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_comment_request_item_put.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_input_data_request_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_input_data_request_item_delete.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_inspection_request_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_inspection_request_item_delete.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_inspection_request_item_put.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_task_request_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/batch_task_request_item_delete.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/bounding_box_metadata.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/change_password_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/color.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/comment_node.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/comment_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/comment_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/comment_validation_error.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/confirm_account_delete_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/confirm_reset_email_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/confirm_reset_password_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/confirm_sign_up_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/confirm_verify_email_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/count.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/count_result.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/data_path.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/date_range.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/default_annotation_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/delete_project_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/duplicated_segmentation_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/duplicated_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/duplicated_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/editor_usage_timespan.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/error_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/errors.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/external_idp_determinant.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_choice_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_choice.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_flag.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_integer.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_link.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_additional_data_value_tracking.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_bounding_box.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_classification.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_points.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_range.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_segmentation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_segmentation_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_single_point.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_data_unknown.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/full_annotation_detail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/get_editor_annotations_in_bulk_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/get_input_data_in_bulk_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/get_supplementary_data_in_bulk_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/get_tasks_in_bulk_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/global_idp_name_determinant.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/graph_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/histogram_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/illegal_state.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/initiate_mfa_setup_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/initiate_mfa_setup_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_identifier.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_order.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_set.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_summary.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/input_data_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data_custom.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data_point.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data_polyline.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data_polyline_coordinates_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_data_time.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_or_reply_required.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_phrase.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_statistics_breakdown.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_statistics_phrases.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_summary.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/inspection_validation_error.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/instruction.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/instruction_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/instruction_image.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/instruction_image_path.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/internationalization_message.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/internationalization_message_messages_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/invalid_annotation_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/invalid_choice.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/invalid_link_target.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/invalid_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/invite_organization_member_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/issue_personal_access_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/issue_project_guest_user_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/issue_project_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/issuer_only_oidc_endpoints.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail_copy_project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail_gen_inputs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail_gen_tasks.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail_invoke_hook.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_detail_move_project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/job_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/key_layout.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/keybind.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/label_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/label_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/label_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/label_v3.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/lang.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/login_need_challenge_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/login_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/login_respond_to_auth_challenge_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/login_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/login_succeed_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/marker.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/markers.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/message.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/message_or_job_info.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/mfa_setting.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_account.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_notification_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_notification_message.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_notification_unread_messages_count.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_organization.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/my_organization_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/no_comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/no_comment_inspection.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/oidc_attribute_mapping.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/oidc_endpoints.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_activity.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_cache_record.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_idp_id_determinant.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_job_info.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_job_info_container.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_member_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_member_role.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_member_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_oidc_idp.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_compatibility.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_compatibility_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_compatibility_type_bottom.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_compatibility_type_constant.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_compatibility_type_top.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_plugin_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/organization_registration_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/overlapped_range_annotation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/password_reset_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/personal_access_token.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/personal_access_token_info.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/personal_access_token_permission.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/personal_access_token_permission_all.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/phase_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_detail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_detail_annotation_editor.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_detail_annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_detail_extended_annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_detail_task_assignment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_token_request_authorization_code.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_token_request_refresh_token.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/plugin_token_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/point.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/position_for_minimum_bounding_box_insertion.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_annotation_archive_update_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_annotation_archive_update_response_wrapper.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_exchange_code_login_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_exchange_code_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_mfa_setting_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/post_project_tasks_update_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/price_plan.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_account_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_account_statistics_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_cache_record.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_configuration_get.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_configuration_put.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_container.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_copy_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_copy_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_kind.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_kind_scope.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_value.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_value_default.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_value_empty.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_extra_data_value_saved.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_guest_user_profile.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_inputs_update_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_job_info.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_job_info_container.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_job_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_member_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_member_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_member_role.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_member_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_summary.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_task_counts.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_task_counts_task_counts_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_task_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_task_statistics_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_token.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/project_token_info.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_annotation_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_annotation_thumbnail_body.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_input_data_set_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_instruction_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_markers_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_my_account_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_my_notification_message_opened_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_organization_idp_body.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_organization_member_role_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_organization_plugin_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_organization_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_project_extra_data_body.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_project_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_project_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/put_webhook_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/refresh_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/reply_comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/reply_required.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/reset_email_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/resolution.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/revoke_personal_access_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/revoke_project_token_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/root_comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/segmentation_metadata.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/sign_up_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/simple_annotation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/simple_annotation_detail.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/single_annotation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/single_annotation_detail_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/single_annotation_detail_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/single_annotation_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/single_annotation_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/supplementary_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/supplementary_data_by_input_data_id_identifier.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/supplementary_data_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/supplementary_data_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/system_metadata.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/system_metadata_custom.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/system_metadata_image.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/system_metadata_movie.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assign_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assign_request_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assign_request_type_random.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assign_request_type_selection.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assign_request_type_task_property.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assignment_order.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assignment_property.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_assignment_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_response_wrapper.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_rule.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_rule_by_count.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_rule_by_directory.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_generate_rule_by_input_data_csv.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_history_event.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_history_short.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_identifier.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_input_validation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_list.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_operation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_phase.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_phase_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/task_validation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/temporary_url.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/token.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/unconfirmed_user_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/unknown_additional_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/unknown_label.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/unknown_link_target.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/update_status_required.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/usage_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/usage_status_by_day.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/usage_status_csv_file_url.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_cache_record.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_defined_annotation_data_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_defined_annotation_type_definition.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_defined_annotation_type_definition_field_definitions_inner.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_defined_annotation_type_field_definition.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/user_id_determinant.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/validation_error.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/verify_email_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_event_type.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_header.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_http_method.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_status.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_test_request.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/webhook_test_response.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/worktime_statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/worktime_statistics_by_account.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/worktime_statistics_by_project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/worktime_statistics_data.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/pydantic_models/worktime_statistics_item.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/resource.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/segmentation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/page.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/task_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/util/type_util.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/utils.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/annofabapi/wrapper.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/Makefile +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/_static/.gitkeep +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/_static/css/custom.css +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/_templates/links.html +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/api.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/api2.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/credentials.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/dataclass.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/exceptions.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/index.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/models.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/parser.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/plugin.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/project_member_repository.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/pydantic_models.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/resource.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/segmentation.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/util.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/utils.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/api_reference/wrapper.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/conf.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/create_pydantic_modes_rst.sh +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/faq.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/img/logo_landscape.png +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/index.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/requirements.txt +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/user_guide/advanced_usage.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/user_guide/basic_usage.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/user_guide/for_developer.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/docs/user_guide/index.rst +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/.openapi-generator-ignore_v1 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/.openapi-generator-ignore_v2 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/README.md +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/generate.sh +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-footer/models_partial_footer.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/comment.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/common.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/input.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/instruction.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/my.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/organization.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/organization_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/project_member.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/statistics.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/supplementary.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/task.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/dataclass/webhook.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/generated_api_partial_header_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/generated_api_partial_header_v2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/partial-header/models_partial_header_v1.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/swagger/swagger-api-components.yaml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/swagger/swagger-partial-header.yaml +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/template/api.mustache +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/template/model.mustache +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/generate/template_dataclass/model.mustache +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/pytest.ini +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/conftest.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/create_test_project.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_0/0733d1e1-ef85-455e-aec0-ff05c499b711.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_0/a3281975-e632-47a7-a71f-08013fad5604.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839/1e2931d2-de34-4956-ab75-81f710dc0108 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839/762f113a-5e17-4b49-861e-dfbea1dda09d +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b/e2a1fbe3-fa8e-413c-be31-882f12ef62b9 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b/ee83756f-074d-4aab-8bfc-6ab6e754c2b8 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/full-annotation.zip +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/lenna.png +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/sample.txt +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/segmentation/segment1 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_0/0733d1e1-ef85-455e-aec0-ff05c499b711.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_0/a3281975-e632-47a7-a71f-08013fad5604.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/.__tests__data__lenna.png/1e2931d2-de34-4956-ab75-81f710dc0108 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/.__tests__data__lenna.png/762f113a-5e17-4b49-861e-dfbea1dda09d +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/.__tests__data__lenna.png/e2a1fbe3-fa8e-413c-be31-882f12ef62b9 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/.__tests__data__lenna.png/ee83756f-074d-4aab-8bfc-6ab6e754c2b8 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839/1e2931d2-de34-4956-ab75-81f710dc0108 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839/762f113a-5e17-4b49-861e-dfbea1dda09d +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c6e1c2ec-6c7c-41c6-9639-4244c2ed2839.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b/e2a1fbe3-fa8e-413c-be31-882f12ef62b9 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b/ee83756f-074d-4aab-8bfc-6ab6e754c2b8 +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation/sample_1/c86205d1-bdd4-4110-ae46-194e661d622b.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/simple-annotation.zip +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/data/util/attribute_restrictions/annotation_specs.json +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_api.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_api2.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_build.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_parser.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_project_member_repository.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_pydantic_models.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_resource.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_sandbox.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_segmentation.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_utils.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/test_wrapper.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/util/__init__.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/util/test_annotation_specs.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/util/test_page.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/util/test_task_history.py +0 -0
- {annofabapi-1.7.0 → annofabapi-1.7.2}/tests/utils_for_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: annofabapi
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.2
|
|
4
4
|
Summary: Python Client Library of Annofab WebAPI (https://annofab.com/docs/api/)
|
|
5
5
|
Project-URL: Repository, https://github.com/kurusugawa-computer/annofab-api-python-client
|
|
6
6
|
Author: Kurusugawa Computer Inc.
|
|
@@ -131,7 +131,6 @@ class AbstractAnnofabApi(abc.ABC):
|
|
|
131
131
|
query_params (dict[str, Any]): Query Parameters
|
|
132
132
|
page (int): 検索結果のうち、取得したいページの番号(1始まり)
|
|
133
133
|
limit (int): 1ページあたりの取得するデータ件数
|
|
134
|
-
aggregate_by_task_and_input (bool): `true`を指定すると、「タスクIDと入力データIDの組」ごとに検索結果を集計します。
|
|
135
134
|
no_aggregate_label_and_input (bool): `true`を指定すると、ラベルIDによるアノテーション検索数の集約結果、および属性IDによるアノテーション検索数の集約結果を取得しません。 このパラメーターを`true`に指定することで集約計算は行われなくなるので、アノテーションの検索が速くなる可能性があります。
|
|
136
135
|
query (str): 絞り込み条件([AnnotationQuery](#tag/x-data-types/AnnotationQuery))をJSON形式で表した文字列。
|
|
137
136
|
sort (str): ソート順の指定。 以下のキーを使用できます。 * `task_id` * `input_data_id` * `detail.annotation_id` * `detail.account_id` * `detail.label_id` * `detail.data_holding_type` * `detail.created_datetime` * `detail.updated_datetime` キーの先頭に`-`を付けると、降順でソートされます。 `,`でキーを区切ると、複数のキーでソートされます。先頭のキーから順に優先順位が割り振られます。
|
|
@@ -2034,7 +2033,7 @@ class AbstractAnnofabApi(abc.ABC):
|
|
|
2034
2033
|
authorizations: ProjectDataUser
|
|
2035
2034
|
|
|
2036
2035
|
|
|
2037
|
-
入力データ全件ファイルにアクセスするための、認証済み一時URLを取得します。 取得したURLは1時間で失効し、アクセスできなくなります。 入力データ全件ファイルは、すべての入力データが記載されたJSONファイルです。
|
|
2036
|
+
入力データ全件ファイルにアクセスするための、認証済み一時URLを取得します。 取得したURLは1時間で失効し、アクセスできなくなります。 入力データ全件ファイルは、すべての入力データが記載されたJSONファイルです。JSON構造は、[InputData](#tag/x-data-types/InputData)の配列です。 ただしInputData中のurlは常にnullです。 毎日AM02:00(JST)頃に更新されます。 [postProjectInputsUpdate](#operation/postProjectInputsUpdate) APIを利用すれば、手動で入力データ全件ファイルを更新できます。
|
|
2038
2037
|
|
|
2039
2038
|
Args:
|
|
2040
2039
|
project_id (str): プロジェクトID (required)
|
|
@@ -32,7 +32,9 @@ from collections.abc import Collection
|
|
|
32
32
|
from enum import Enum
|
|
33
33
|
from typing import Any, NoReturn, cast
|
|
34
34
|
|
|
35
|
-
from pydantic import BaseModel, ConfigDict, Field, field_serializer, model_validator
|
|
35
|
+
from pydantic import BaseModel, ConfigDict, Field, GetJsonSchemaHandler, field_serializer, model_validator
|
|
36
|
+
from pydantic.json_schema import JsonSchemaValue
|
|
37
|
+
from pydantic_core import CoreSchema
|
|
36
38
|
|
|
37
39
|
from annofabapi.pydantic_models.additional_data_definition_type import AdditionalDataDefinitionType
|
|
38
40
|
from annofabapi.util.annotation_specs import AnnotationSpecsAccessor, AttributeChoice, AttributeDefinition, get_choice, get_english_message
|
|
@@ -49,7 +51,7 @@ class RestrictionAstType(str, Enum):
|
|
|
49
51
|
IS_EMPTY = "is_empty"
|
|
50
52
|
"""属性値が空であることを表すAST種別です。"""
|
|
51
53
|
IS_NOT_EMPTY = "is_not_empty"
|
|
52
|
-
"""属性値が空でないことを表すAST
|
|
54
|
+
"""属性値が空でないことを表すAST種別です。必須制約に相当します。"""
|
|
53
55
|
EQUALS_STRING = "equals_string"
|
|
54
56
|
"""文字列属性またはtracking属性が指定文字列と一致することを表すAST種別です。"""
|
|
55
57
|
NOT_EQUALS_STRING = "not_equals_string"
|
|
@@ -76,6 +78,44 @@ class RestrictionAstType(str, Enum):
|
|
|
76
78
|
def __str__(self) -> str:
|
|
77
79
|
return self.value
|
|
78
80
|
|
|
81
|
+
@property
|
|
82
|
+
def description(self) -> str:
|
|
83
|
+
"""AST種別の説明文を返します。"""
|
|
84
|
+
return _RESTRICTION_AST_TYPE_DESCRIPTIONS[self]
|
|
85
|
+
|
|
86
|
+
@classmethod
|
|
87
|
+
def __get_pydantic_json_schema__(cls, core_schema: CoreSchema, handler: GetJsonSchemaHandler) -> JsonSchemaValue:
|
|
88
|
+
"""AST種別ごとの説明を含むJSON Schemaを返します。"""
|
|
89
|
+
json_schema = handler(core_schema)
|
|
90
|
+
json_schema["oneOf"] = [
|
|
91
|
+
{
|
|
92
|
+
"const": ast_type.value,
|
|
93
|
+
"title": ast_type.name,
|
|
94
|
+
"description": ast_type.description,
|
|
95
|
+
}
|
|
96
|
+
for ast_type in cls
|
|
97
|
+
]
|
|
98
|
+
return json_schema
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
_RESTRICTION_AST_TYPE_DESCRIPTIONS: dict[RestrictionAstType, str] = {
|
|
102
|
+
RestrictionAstType.CHECKED: "チェックボックス属性がチェックされていることを表すAST種別です。",
|
|
103
|
+
RestrictionAstType.UNCHECKED: "チェックボックス属性がチェックされていないことを表すAST種別です。",
|
|
104
|
+
RestrictionAstType.IS_EMPTY: "属性値が空であることを表すAST種別です。",
|
|
105
|
+
RestrictionAstType.IS_NOT_EMPTY: "属性値が空でないことを表すAST種別です。必須制約に相当します。",
|
|
106
|
+
RestrictionAstType.EQUALS_STRING: "文字列属性またはtracking属性が指定文字列と一致することを表すAST種別です。",
|
|
107
|
+
RestrictionAstType.NOT_EQUALS_STRING: "文字列属性またはtracking属性が指定文字列と一致しないことを表すAST種別です。",
|
|
108
|
+
RestrictionAstType.MATCHES_STRING: "文字列属性が指定した正規表現に一致することを表すAST種別です。",
|
|
109
|
+
RestrictionAstType.NOT_MATCHES_STRING: "文字列属性が指定した正規表現に一致しないことを表すAST種別です。",
|
|
110
|
+
RestrictionAstType.EQUALS_INTEGER: "整数属性が指定した整数値と一致することを表すAST種別です。",
|
|
111
|
+
RestrictionAstType.NOT_EQUALS_INTEGER: "整数属性が指定した整数値と一致しないことを表すAST種別です。",
|
|
112
|
+
RestrictionAstType.HAS_CHOICE: "選択属性で指定した選択肢が選ばれていることを表すAST種別です。",
|
|
113
|
+
RestrictionAstType.NOT_HAS_CHOICE: "選択属性で指定した選択肢が選ばれていないことを表すAST種別です。",
|
|
114
|
+
RestrictionAstType.HAS_LABEL: "リンク属性が指定したラベル群のいずれかを指すことを表すAST種別です。",
|
|
115
|
+
RestrictionAstType.CAN_INPUT: "属性が編集可能かどうかを表すAST種別です。",
|
|
116
|
+
RestrictionAstType.IMPLY: "前提を満たす場合に結論を要求する含意制約を表すAST種別です。",
|
|
117
|
+
}
|
|
118
|
+
|
|
79
119
|
|
|
80
120
|
class Restriction(ABC):
|
|
81
121
|
"""属性の制約を表すクラス。"""
|
|
@@ -119,16 +159,19 @@ class Restriction(ABC):
|
|
|
119
159
|
accessor = AnnotationSpecsAccessor(annotation_specs)
|
|
120
160
|
return _restriction_to_ast(self, accessor=accessor)
|
|
121
161
|
|
|
122
|
-
def to_human_readable(self, annotation_specs: dict[str, Any]) -> str:
|
|
162
|
+
def to_human_readable(self, annotation_specs: dict[str, Any], *, include_ids: bool = False) -> str:
|
|
123
163
|
"""
|
|
124
164
|
Restrictionオブジェクトを、人にとって読みやすい文字列表現へ変換します。
|
|
125
165
|
|
|
126
166
|
Args:
|
|
127
167
|
annotation_specs: アノテーション仕様(v3)の情報です。
|
|
168
|
+
include_ids: Trueの場合、属性ID、選択肢ID、ラベルIDを文字列表現に含めます。
|
|
128
169
|
|
|
129
170
|
Returns:
|
|
130
171
|
CLIなどで表示しやすい文字列表現です。
|
|
131
172
|
"""
|
|
173
|
+
if include_ids:
|
|
174
|
+
return _restriction_to_human_readable_with_ids(self, accessor=AnnotationSpecsAccessor(annotation_specs))
|
|
132
175
|
return self.to_ast(annotation_specs).to_human_readable()
|
|
133
176
|
|
|
134
177
|
@classmethod
|
|
@@ -1040,6 +1083,210 @@ def _raise_invalid_restriction(*, attribute: AttributeDefinition, condition: dic
|
|
|
1040
1083
|
raise ValueError(message)
|
|
1041
1084
|
|
|
1042
1085
|
|
|
1086
|
+
def _restriction_to_human_readable_with_ids(restriction: Restriction, *, accessor: AnnotationSpecsAccessor) -> str: # noqa: PLR0915
|
|
1087
|
+
"""
|
|
1088
|
+
`Restriction` をID付きの人間向け文字列へ変換します。
|
|
1089
|
+
|
|
1090
|
+
Args:
|
|
1091
|
+
restriction: 変換元の `Restriction` です。
|
|
1092
|
+
accessor: 属性名、選択肢名、ラベル名の解決に使う `AnnotationSpecsAccessor` です。
|
|
1093
|
+
|
|
1094
|
+
Returns:
|
|
1095
|
+
属性ID、選択肢ID、ラベルIDを含む人間向け文字列表現です。
|
|
1096
|
+
|
|
1097
|
+
Raises:
|
|
1098
|
+
ValueError: 人間向け文字列へ変換できない制約が含まれている場合
|
|
1099
|
+
"""
|
|
1100
|
+
|
|
1101
|
+
def format_attribute(attribute: AttributeDefinition) -> str:
|
|
1102
|
+
"""
|
|
1103
|
+
属性名と属性IDを人間向け文字列へ変換します。
|
|
1104
|
+
|
|
1105
|
+
Args:
|
|
1106
|
+
attribute: アノテーション仕様上の属性定義です。
|
|
1107
|
+
|
|
1108
|
+
Returns:
|
|
1109
|
+
属性名と属性IDを含む文字列表現です。
|
|
1110
|
+
"""
|
|
1111
|
+
attribute_name = get_english_message(attribute["name"])
|
|
1112
|
+
attribute_id = attribute["additional_data_definition_id"]
|
|
1113
|
+
return f"{attribute_name!r} [attribute_id={attribute_id!r}]"
|
|
1114
|
+
|
|
1115
|
+
def format_choice(choice: AttributeChoice) -> str:
|
|
1116
|
+
"""
|
|
1117
|
+
選択肢名と選択肢IDを人間向け文字列へ変換します。
|
|
1118
|
+
|
|
1119
|
+
Args:
|
|
1120
|
+
choice: アノテーション仕様上の選択肢定義です。
|
|
1121
|
+
|
|
1122
|
+
Returns:
|
|
1123
|
+
選択肢名と選択肢IDを含む文字列表現です。
|
|
1124
|
+
"""
|
|
1125
|
+
choice_name = get_english_message(choice["name"])
|
|
1126
|
+
choice_id = choice["choice_id"]
|
|
1127
|
+
return f"{choice_name!r} [choice_id={choice_id!r}]"
|
|
1128
|
+
|
|
1129
|
+
def format_label(label_id: str) -> str:
|
|
1130
|
+
"""
|
|
1131
|
+
ラベル名とラベルIDを人間向け文字列へ変換します。
|
|
1132
|
+
|
|
1133
|
+
Args:
|
|
1134
|
+
label_id: ラベルIDです。
|
|
1135
|
+
|
|
1136
|
+
Returns:
|
|
1137
|
+
ラベル名とラベルIDを含む文字列表現です。
|
|
1138
|
+
"""
|
|
1139
|
+
label = accessor.get_label(label_id=label_id)
|
|
1140
|
+
label_name = get_english_message(label["label_name"])
|
|
1141
|
+
return f"{label_name!r} [label_id={label_id!r}]"
|
|
1142
|
+
|
|
1143
|
+
def parse_integer_value(value: str, *, attribute: AttributeDefinition, condition: dict[str, Any]) -> int:
|
|
1144
|
+
"""
|
|
1145
|
+
整数属性向けの文字列値を整数へ変換します。
|
|
1146
|
+
|
|
1147
|
+
Args:
|
|
1148
|
+
value: 変換対象の文字列値です。
|
|
1149
|
+
attribute: アノテーション仕様上の属性定義です。
|
|
1150
|
+
condition: 元の条件辞書です。
|
|
1151
|
+
|
|
1152
|
+
Returns:
|
|
1153
|
+
変換後の整数値です。
|
|
1154
|
+
|
|
1155
|
+
Raises:
|
|
1156
|
+
ValueError: 整数へ変換できない場合
|
|
1157
|
+
"""
|
|
1158
|
+
try:
|
|
1159
|
+
return int(value)
|
|
1160
|
+
except ValueError as exc:
|
|
1161
|
+
_raise_invalid_restriction(attribute=attribute, condition=condition, detail="整数属性には整数値を指定してください。")
|
|
1162
|
+
raise AssertionError("unreachable") from exc
|
|
1163
|
+
|
|
1164
|
+
def equals_restriction_to_text(
|
|
1165
|
+
*, attribute: AttributeDefinition, attribute_text: str, attribute_type: AdditionalDataDefinitionType, value: str
|
|
1166
|
+
) -> str:
|
|
1167
|
+
match attribute_type:
|
|
1168
|
+
case "flag" if value == "true":
|
|
1169
|
+
return f"{attribute_text} is checked"
|
|
1170
|
+
case "text" | "comment" | "integer" | "link" | "tracking" | "choice" | "select" if value == "":
|
|
1171
|
+
return f"{attribute_text} is empty"
|
|
1172
|
+
case "text" | "comment" | "tracking":
|
|
1173
|
+
return f"{attribute_text} is {value!r}"
|
|
1174
|
+
case "integer":
|
|
1175
|
+
integer_value = parse_integer_value(value, attribute=attribute, condition={"_type": "Equals", "value": value})
|
|
1176
|
+
return f"{attribute_text} is {integer_value!r}"
|
|
1177
|
+
case "choice" | "select":
|
|
1178
|
+
choice = get_choice(cast(list[AttributeChoice], attribute["choices"]), choice_id=value)
|
|
1179
|
+
return f"{attribute_text} is {format_choice(choice)}"
|
|
1180
|
+
case _:
|
|
1181
|
+
raise ValueError(
|
|
1182
|
+
f"Restrictionを人間向け文字列へ変換できません。 :: restriction_type='Equals', attribute_type='{attribute_type}', value={value!r}"
|
|
1183
|
+
)
|
|
1184
|
+
|
|
1185
|
+
def not_equals_restriction_to_text(
|
|
1186
|
+
*, attribute: AttributeDefinition, attribute_text: str, attribute_type: AdditionalDataDefinitionType, value: str
|
|
1187
|
+
) -> str:
|
|
1188
|
+
match attribute_type:
|
|
1189
|
+
case "flag" if value == "true":
|
|
1190
|
+
return f"{attribute_text} is unchecked"
|
|
1191
|
+
case "text" | "comment" | "integer" | "link" | "tracking" | "choice" | "select" if value == "":
|
|
1192
|
+
return f"{attribute_text} is not empty"
|
|
1193
|
+
case "text" | "comment" | "tracking":
|
|
1194
|
+
return f"{attribute_text} is not {value!r}"
|
|
1195
|
+
case "integer":
|
|
1196
|
+
integer_value = parse_integer_value(value, attribute=attribute, condition={"_type": "NotEquals", "value": value})
|
|
1197
|
+
return f"{attribute_text} is not {integer_value!r}"
|
|
1198
|
+
case "choice" | "select":
|
|
1199
|
+
choice = get_choice(cast(list[AttributeChoice], attribute["choices"]), choice_id=value)
|
|
1200
|
+
return f"{attribute_text} is not {format_choice(choice)}"
|
|
1201
|
+
case _:
|
|
1202
|
+
restriction_type = "NotEquals"
|
|
1203
|
+
raise ValueError(
|
|
1204
|
+
f"Restrictionを人間向け文字列へ変換できません。 :: restriction_type='{restriction_type}', "
|
|
1205
|
+
f"attribute_type='{attribute_type}', value={value!r}"
|
|
1206
|
+
)
|
|
1207
|
+
|
|
1208
|
+
def atomic_restriction_to_text(restriction: Restriction, *, attribute: AttributeDefinition) -> str:
|
|
1209
|
+
"""
|
|
1210
|
+
`imply` 以外の `Restriction` をID付きの人間向け文字列へ変換します。
|
|
1211
|
+
|
|
1212
|
+
Args:
|
|
1213
|
+
restriction: 変換元の `Restriction` です。
|
|
1214
|
+
attribute: 制約対象の属性定義です。
|
|
1215
|
+
|
|
1216
|
+
Returns:
|
|
1217
|
+
ID付きの人間向け文字列表現です。
|
|
1218
|
+
"""
|
|
1219
|
+
attribute_type = attribute["type"]
|
|
1220
|
+
attribute_text = format_attribute(attribute)
|
|
1221
|
+
|
|
1222
|
+
match restriction:
|
|
1223
|
+
case CanInput(enable=enable):
|
|
1224
|
+
return f"{attribute_text} can be edited" if enable else f"{attribute_text} is read-only"
|
|
1225
|
+
case Equals(value=value):
|
|
1226
|
+
return equals_restriction_to_text(
|
|
1227
|
+
attribute=attribute,
|
|
1228
|
+
attribute_text=attribute_text,
|
|
1229
|
+
attribute_type=attribute_type,
|
|
1230
|
+
value=value,
|
|
1231
|
+
)
|
|
1232
|
+
case NotEquals(value=value):
|
|
1233
|
+
return not_equals_restriction_to_text(
|
|
1234
|
+
attribute=attribute,
|
|
1235
|
+
attribute_text=attribute_text,
|
|
1236
|
+
attribute_type=attribute_type,
|
|
1237
|
+
value=value,
|
|
1238
|
+
)
|
|
1239
|
+
case Matches(value=value) if attribute_type in {"text", "comment"}:
|
|
1240
|
+
return f"{attribute_text} matches {value!r}"
|
|
1241
|
+
case NotMatches(value=value) if attribute_type in {"text", "comment"}:
|
|
1242
|
+
return f"{attribute_text} does not match {value!r}"
|
|
1243
|
+
case HasLabel(label_ids=label_ids) if attribute_type == "link":
|
|
1244
|
+
return f"{attribute_text} has labels {', '.join(format_label(label_id) for label_id in label_ids)}"
|
|
1245
|
+
case _:
|
|
1246
|
+
_raise_invalid_restriction(attribute=attribute, condition=restriction.to_dict()["condition"])
|
|
1247
|
+
|
|
1248
|
+
def flatten_imply_conditions(restriction: Imply) -> tuple[list[Restriction], Restriction]:
|
|
1249
|
+
"""
|
|
1250
|
+
右側にネストした `imply` を条件列と結論へ分解します。
|
|
1251
|
+
|
|
1252
|
+
Args:
|
|
1253
|
+
restriction: `imply` 種別の制約です。
|
|
1254
|
+
|
|
1255
|
+
Returns:
|
|
1256
|
+
条件制約の一覧と最終的な結論制約です。
|
|
1257
|
+
"""
|
|
1258
|
+
conditions = [restriction.premise_restriction]
|
|
1259
|
+
conclusion = restriction.conclusion_restriction
|
|
1260
|
+
while isinstance(conclusion, Imply):
|
|
1261
|
+
conditions.append(conclusion.premise_restriction)
|
|
1262
|
+
conclusion = conclusion.conclusion_restriction
|
|
1263
|
+
return conditions, conclusion
|
|
1264
|
+
|
|
1265
|
+
def to_human_condition_text(restriction: Restriction) -> str:
|
|
1266
|
+
"""
|
|
1267
|
+
条件節で使う人間向け文字列表現へ変換します。
|
|
1268
|
+
|
|
1269
|
+
Args:
|
|
1270
|
+
restriction: 変換対象の制約です。
|
|
1271
|
+
|
|
1272
|
+
Returns:
|
|
1273
|
+
条件節で使いやすい文字列表現です。
|
|
1274
|
+
"""
|
|
1275
|
+
if isinstance(restriction, Imply):
|
|
1276
|
+
return f"({_restriction_to_human_readable_with_ids(restriction, accessor=accessor)})"
|
|
1277
|
+
return _restriction_to_human_readable_with_ids(restriction, accessor=accessor)
|
|
1278
|
+
|
|
1279
|
+
match restriction:
|
|
1280
|
+
case Imply():
|
|
1281
|
+
conditions, conclusion = flatten_imply_conditions(restriction)
|
|
1282
|
+
conditions_text = " and ".join(to_human_condition_text(condition) for condition in conditions)
|
|
1283
|
+
conclusion_text = _restriction_to_human_readable_with_ids(conclusion, accessor=accessor)
|
|
1284
|
+
return f"If {conditions_text}, {conclusion_text}."
|
|
1285
|
+
|
|
1286
|
+
attribute = accessor.get_attribute(attribute_id=restriction.attribute_id)
|
|
1287
|
+
return atomic_restriction_to_text(restriction, attribute=attribute)
|
|
1288
|
+
|
|
1289
|
+
|
|
1043
1290
|
def _restriction_to_ast(restriction: Restriction, *, accessor: AnnotationSpecsAccessor) -> RestrictionAst:
|
|
1044
1291
|
"""
|
|
1045
1292
|
`Restriction` を意味ベースの `RestrictionAst` へ変換します。
|
|
@@ -7,7 +7,7 @@ from annofabapi.models import (
|
|
|
7
7
|
TaskStatus,
|
|
8
8
|
)
|
|
9
9
|
|
|
10
|
-
AnnotationDataV1 =
|
|
10
|
+
AnnotationDataV1 = str | dict[str, Any]
|
|
11
11
|
FullAnnotationData = Any
|
|
12
12
|
AdditionalDataValue = dict[str, Any]
|
|
13
13
|
FullAnnotationAdditionalDataValue = dict[str, Any]
|
|
@@ -115,7 +115,7 @@ info:
|
|
|
115
115
|
|
|
116
116
|
上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。
|
|
117
117
|
|
|
118
|
-
version: 0.
|
|
118
|
+
version: 0.210.0
|
|
119
119
|
title: Annofab Web API
|
|
120
120
|
x-logo:
|
|
121
121
|
url: "https://annofab.com/resource/images/logo_landscape.png"
|
|
@@ -119,7 +119,7 @@ info:
|
|
|
119
119
|
上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。
|
|
120
120
|
また、AggregationResultの集約の件数は、合計で10000件以下に制限されており、それを超える件数がある場合は上位10000件が取得されます。もし、省略された部分を取得したい場合は、検索条件を縛って結果に上る集約の数を減らしてください。
|
|
121
121
|
|
|
122
|
-
version: 0.
|
|
122
|
+
version: 0.210.0
|
|
123
123
|
title: Annofab Web API
|
|
124
124
|
x-logo:
|
|
125
125
|
url: "https://annofab.com/resource/images/logo_landscape.png"
|
|
@@ -2094,7 +2094,7 @@ paths:
|
|
|
2094
2094
|
入力データ全件ファイルにアクセスするための、認証済み一時URLを取得します。
|
|
2095
2095
|
取得したURLは1時間で失効し、アクセスできなくなります。
|
|
2096
2096
|
|
|
2097
|
-
入力データ全件ファイルは、すべての入力データが記載されたJSONファイルです。
|
|
2097
|
+
入力データ全件ファイルは、すべての入力データが記載されたJSONファイルです。JSON構造は、[InputData](#tag/x-data-types/InputData)の配列です。
|
|
2098
2098
|
ただしInputData中のurlは常にnullです。
|
|
2099
2099
|
|
|
2100
2100
|
毎日AM02:00(JST)頃に更新されます。
|
|
@@ -4607,14 +4607,6 @@ paths:
|
|
|
4607
4607
|
minimum: 0
|
|
4608
4608
|
maximum: 200
|
|
4609
4609
|
default: 30
|
|
4610
|
-
- name: aggregate_by_task_and_input
|
|
4611
|
-
in: query
|
|
4612
|
-
description: |
|
|
4613
|
-
`true`を指定すると、「タスクIDと入力データIDの組」ごとに検索結果を集計します。
|
|
4614
|
-
required: false
|
|
4615
|
-
schema:
|
|
4616
|
-
type: boolean
|
|
4617
|
-
default: false
|
|
4618
4610
|
- name: no_aggregate_label_and_input
|
|
4619
4611
|
in: query
|
|
4620
4612
|
description: |
|
|
@@ -281,6 +281,58 @@ class Test__Restriction:
|
|
|
281
281
|
|
|
282
282
|
assert actual == "If 'occluded' is checked, 'note' is not empty."
|
|
283
283
|
|
|
284
|
+
def test__to_human_readable__include_idsがTrueなら属性IDを出力する(self):
|
|
285
|
+
restriction = Restriction.from_dict(
|
|
286
|
+
{
|
|
287
|
+
"additional_data_definition_id": "9b05648d-1e16-4ea2-ab79-48907f5eed00",
|
|
288
|
+
"condition": {
|
|
289
|
+
"_type": "Imply",
|
|
290
|
+
"premise": {
|
|
291
|
+
"additional_data_definition_id": "2517f635-2269-4142-8ef4-16312b4cc9f7",
|
|
292
|
+
"condition": {"_type": "Equals", "value": "true"},
|
|
293
|
+
},
|
|
294
|
+
"condition": {"_type": "NotEquals", "value": ""},
|
|
295
|
+
},
|
|
296
|
+
}
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
actual = restriction.to_human_readable(accessor.annotation_specs, include_ids=True)
|
|
300
|
+
|
|
301
|
+
assert (
|
|
302
|
+
actual == "If 'occluded' [attribute_id='2517f635-2269-4142-8ef4-16312b4cc9f7'] is checked, "
|
|
303
|
+
"'note' [attribute_id='9b05648d-1e16-4ea2-ab79-48907f5eed00'] is not empty."
|
|
304
|
+
)
|
|
305
|
+
|
|
306
|
+
def test__to_human_readable__include_idsがTrueなら選択肢IDを出力する(self):
|
|
307
|
+
restriction = Restriction.from_dict(
|
|
308
|
+
{
|
|
309
|
+
"additional_data_definition_id": "cbb0155f-1631-48e1-8fc3-43c5f254b6f2",
|
|
310
|
+
"condition": {"_type": "Equals", "value": "7512ee39-8073-4e24-9b8c-93d99b76b7d2"},
|
|
311
|
+
}
|
|
312
|
+
)
|
|
313
|
+
|
|
314
|
+
actual = restriction.to_human_readable(accessor.annotation_specs, include_ids=True)
|
|
315
|
+
|
|
316
|
+
assert (
|
|
317
|
+
actual == "'car_kind' [attribute_id='cbb0155f-1631-48e1-8fc3-43c5f254b6f2'] is "
|
|
318
|
+
"'general_car' [choice_id='7512ee39-8073-4e24-9b8c-93d99b76b7d2']"
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
def test__to_human_readable__include_idsがTrueならラベルIDを出力する(self):
|
|
322
|
+
restriction = Restriction.from_dict(
|
|
323
|
+
{
|
|
324
|
+
"additional_data_definition_id": "15ba8b9d-4882-40c2-bb31-ed3f68197c2e",
|
|
325
|
+
"condition": {"_type": "HasLabel", "labels": ["9d6cca8d-3f5a-4808-a6c9-0ae18a478176"]},
|
|
326
|
+
}
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
actual = restriction.to_human_readable(accessor.annotation_specs, include_ids=True)
|
|
330
|
+
|
|
331
|
+
assert (
|
|
332
|
+
actual == "'link_car' [attribute_id='15ba8b9d-4882-40c2-bb31-ed3f68197c2e'] has labels "
|
|
333
|
+
"'car' [label_id='9d6cca8d-3f5a-4808-a6c9-0ae18a478176']"
|
|
334
|
+
)
|
|
335
|
+
|
|
284
336
|
def test__to_human_readable__右側にネストしたimplyは条件をまとめる(self):
|
|
285
337
|
restriction = Restriction.from_dict(
|
|
286
338
|
{
|
|
@@ -437,10 +489,22 @@ class Test__RestrictionAst:
|
|
|
437
489
|
def test__model_json_schema(self):
|
|
438
490
|
actual = RestrictionAst.model_json_schema()
|
|
439
491
|
properties = actual["$defs"]["RestrictionAst"]["properties"]
|
|
492
|
+
ast_type_schema = actual["$defs"]["RestrictionAstType"]
|
|
440
493
|
|
|
441
494
|
assert properties["type"]["description"] == "ASTノードの種類です。"
|
|
442
495
|
assert properties["attribute_name"]["description"] == "対象属性の名前です。"
|
|
443
496
|
assert properties["premise"]["description"] == "`imply` ノードの前提です。"
|
|
497
|
+
assert ast_type_schema["description"] == "属性制約ASTの種別です。"
|
|
498
|
+
assert {
|
|
499
|
+
"const": "checked",
|
|
500
|
+
"title": "CHECKED",
|
|
501
|
+
"description": "チェックボックス属性がチェックされていることを表すAST種別です。",
|
|
502
|
+
} in ast_type_schema["oneOf"]
|
|
503
|
+
assert {
|
|
504
|
+
"const": "imply",
|
|
505
|
+
"title": "IMPLY",
|
|
506
|
+
"description": "前提を満たす場合に結論を要求する含意制約を表すAST種別です。",
|
|
507
|
+
} in ast_type_schema["oneOf"]
|
|
444
508
|
|
|
445
509
|
|
|
446
510
|
class Test__get_attribute_restriction_catalog:
|