annofabcli 1.104.1__tar.gz → 1.105.1__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.
- annofabcli-1.105.1/.clinerules/overview.md +19 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/PKG-INFO +1 -1
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/annotation_query.py +5 -0
- annofabcli-1.105.1/annofabcli/annotation/change_annotation_attributes_per_annotation.py +296 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/delete_annotation.py +1 -2
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/dump_annotation.py +31 -13
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/restore_annotation.py +45 -5
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/subcommand_annotation.py +2 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_comment.py +1 -1
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/visualize.py +3 -6
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history_event/list_all_task_history_event.py +25 -7
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history_event/list_worktime.py +71 -12
- annofabcli-1.105.1/docs/command_reference/annotation/change_attributes_per_annotation.rst +103 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/dump.rst +1 -1
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/index.rst +1 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_worktime.rst +2 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/list_all/out.csv +3 -3
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/list_all.rst +8 -27
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/list_worktime/out.csv +3 -3
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/list_worktime.rst +48 -44
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_list_worktime.py +3 -1
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.devcontainer/.extensions/.gitignore +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.devcontainer/Dockerfile +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.devcontainer/devcontainer.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.github/dependabot.yml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.github/workflows/codeql-analysis.yml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.github/workflows/lint-test.yml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.github/workflows/publish-to-pypi.yml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.github/workflows/release.yml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.gitignore +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.readthedocs.yaml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.vscode/cspell.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/.vscode/settings.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/LICENSE +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/Makefile +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/README.md +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/README_for_developer.md +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/__main__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/change_annotation_attributes.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/change_annotation_properties.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/copy_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/download_annotation_zip.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/import_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/list_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/list_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/merge_segmentation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation/remove_segmentation_overlap.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/add_attribute_restriction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/attribute_restriction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/export_annotation_specs.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/get_annotation_specs_with_attribute_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/get_annotation_specs_with_choice_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/get_annotation_specs_with_label_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_annotation_specs_attribute.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_annotation_specs_choice.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_annotation_specs_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_annotation_specs_label.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_annotation_specs_label_attribute.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_attribute_restriction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/list_label_color.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/put_label_color.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/annotation_specs/subcommand_annotation_specs.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/delete_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/download_comment_json.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/list_all_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/list_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_comment_simply.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_inspection_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_inspection_comment_simply.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_onhold_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/put_onhold_comment_simply.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/subcommand_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/comment/utils.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/annofab/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/annofab/annotation_specs.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/annofab/project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/bokeh.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/cli.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/dataclasses.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/download.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/enums.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/exceptions.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/facade.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/image.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/pandas.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/type_util.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/typing.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/common/utils.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/data/logging.yaml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/experimental/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/experimental/list_out_of_range_annotation_for_movie.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/experimental/subcommand_experimental.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/draw_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/filter_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/mask_user_info.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/merge_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/filesystem/subcommand_filesystem.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/change_input_data_name.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/copy_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/delete_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/delete_metadata_key_of_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/download_input_data_json.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/list_all_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/list_all_input_data_merged_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/list_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/put_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/put_input_data_with_zip.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/subcommand_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/update_metadata_of_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/input_data/utils.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/copy_instruction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/download_instruction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/list_instruction_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/subcommand_instruction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/instruction/upload_instruction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/delete_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/list_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/list_last_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/subcommand_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/job/wait_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/my_account/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/my_account/get_my_account.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/my_account/subcommand_my_account.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization/list_organization.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization/subcommand_organization.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/change_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/delete_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/invite_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/list_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/organization_member/subcommand_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/change_organization_of_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/change_project_status.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/copy_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/diff_projects.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/list_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/put_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project/subcommand_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/change_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/copy_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/drop_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/invite_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/list_users.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/put_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/project_member/subcommand_project_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/py.typed +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/mask_visualization_dir.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/merge_visualization_dir.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/subcommand_stat_visualization.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/summarize_whole_performance_csv.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/write_graph.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/stat_visualization/write_performance_rating_csv.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/histogram.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/linegraph.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_annotation_area.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_annotation_attribute.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_annotation_attribute_filled_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_annotation_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_video_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/list_worktime.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/scatter.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/subcommand_statistics.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/summarize_task_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/summarize_task_count_by_task_id_group.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/summarize_task_count_by_user.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/actual_worktime.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/cumulative_productivity.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/custom_production_volume.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/input_data_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/inspection_comment_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/productivity_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/project_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/task_worktime_by_phase_user.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/user.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/user_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/whole_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/whole_productivity_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/dataframe/worktime_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/filtering_query.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/model.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/project_dir.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualization/visualization_source_files.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualize_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualize_annotation_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualize_statistics.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/statistics/visualize_video_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/supplementary/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/supplementary/delete_supplementary_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/supplementary/list_supplementary_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/supplementary/put_supplementary_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/supplementary/subcommand_supplementary.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/cancel_acceptance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/change_operator.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/change_status_to_break.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/change_status_to_on_hold.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/complete_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/copy_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/delete_metadata_key_of_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/delete_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/download_task_json.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/list_all_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/list_all_tasks_added_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/list_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/list_tasks_added_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/put_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/put_tasks_by_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/reject_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/subcommand_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task/update_metadata_of_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history/download_task_history_json.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history/list_all_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history/list_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history/subcommand_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history_event/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history_event/download_task_history_event_json.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/annofabcli/task_history_event/subcommand_task_history_event.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/Makefile +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/_static/css/custom.css +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/change_attributes.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/change_properties.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/import.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/list_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/merge_segmentation/after.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/merge_segmentation/before.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/merge_segmentation.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/remove_segmentation_overlap/after.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/remove_segmentation_overlap/before.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/remove_segmentation_overlap.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation/restore.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/add_attribute_restriction.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/export.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/get_with_attribute_id_replaced_label_name.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/get_with_choice_id_replaced_label_name.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/get_with_label_id_replaced_label_name.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_attribute.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_attribute_restriction.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_choice.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_history.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_label.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_label_attribute.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/list_label_color.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/annotation_specs/put_label_color.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/list_all.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/put_inspection.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/put_inspection_simply.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/put_onhold.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/comment/put_onhold_simply.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/experimental/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/draw_annotation/output_image.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/draw_annotation.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/filter_annotation.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/mask_user_info.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/merge_annotation.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/filesystem/write_annotation_image/output_image.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/change_name.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/delete_metadata_key.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/list_all.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/list_all_merged_task.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/list_merged_task/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/put.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/put_with_zip.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/input_data/update_metadata.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/list_history.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/upload/site.css +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/instruction/upload.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/list_last/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/list_last.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/list_task_creation_history/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/job/wait.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/my_account/get.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/my_account/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/change.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/invite.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/organization_member/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/change_organization.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/change_status.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/diff.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/list/out_minimal.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project/put.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/change.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/invite.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/project_member/put.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/mask_user_info.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/merge.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/summarise_whole_performance_csv//343/203/227/343/203/255/343/202/270/343/202/247/343/202/257/343/203/210/343/201/224/343/201/250/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/summarize_whole_performance_csv.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/write_graph.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/write_performance_rating_csv/out/annotation_productivity_deviation.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/write_performance_rating_csv/out/annotation_productivity_rank.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/stat_visualization/write_performance_rating_csv.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_area.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_attribute/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_attribute.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_attribute_filled_count/out_by_input_data.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_attribute_filled_count/out_by_task.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_attribute_filled_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_count/out_by_input_data_attribute.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_count/out_by_input_data_label.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_count/out_by_task_attribute.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_count/out_by_task_label.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_duration/out_by_attribute.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_duration/out_by_label.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_annotation_duration.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_video_duration/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/list_video_duration.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/summarize_task_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/summarize_task_count_by_task_id_group.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/summarize_task_count_by_user.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/346/225/260/343/201/250/346/225/231/345/270/253/344/273/230/344/275/234/346/245/255/346/231/202/351/226/223/343/201/256/347/264/257/347/251/215/343/202/260/343/203/251/343/203/225.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/346/225/260/343/201/250/346/244/234/346/237/273/343/202/263/343/203/241/343/203/263/343/203/210/346/225/260/343/201/256/347/264/257/347/251/215/343/202/260/343/203/251/343/203/225.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/343/201/224/343/201/250/343/201/256/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/343/201/224/343/201/250/343/201/256/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/350/250/210/346/270/254/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/345/223/201/350/263/252/343/201/256/351/226/242/344/277/202-/345/256/237/347/270/276/346/231/202/351/226/223-/346/225/231/345/270/253/344/273/230/350/200/205/347/224/250.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/225/243/345/270/203/345/233/263-/345/223/201/350/263/252-/346/244/234/346/237/273/343/202/263/343/203/241/343/203/263/343/203/210/346/225/260.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/225/243/345/270/203/345/233/263-/346/225/231/345/270/253/344/273/230-/345/256/237/347/270/276/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/227/245/343/201/224/343/201/250/343/201/256/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/227/245/343/201/224/343/201/250/343/201/256/343/202/277/343/202/271/343/202/257/346/225/260/343/201/250/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/227/245/343/201/224/343/201/250/343/201/256/347/264/257/347/251/215/343/202/277/343/202/271/343/202/257/346/225/260/343/201/250/347/264/257/347/251/215/344/275/234/346/245/255/346/231/202/351/226/223.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/img//346/227/245/343/201/224/343/201/250/343/201/256/347/264/257/347/251/215/344/275/234/346/245/255/346/231/202/351/226/223-/343/203/246/343/203/274/343/202/266/343/201/224/343/201/250/343/201/253/343/203/227/343/203/255/343/203/203/343/203/210.png" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245-/345/205/250/344/275/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245-/347/270/246/350/273/270_/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/345/215/230/344/275/215/343/201/256/346/214/207/346/250/231-/346/225/231/345/270/253/344/273/230/350/200/205/347/224/250.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/345/205/250/344/275/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/346/225/260-/345/217/227/345/205/245/350/200/205/347/224/250.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/346/225/260-/346/225/231/345/270/253/344/273/230/350/200/205/347/224/250.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/345/205/250/344/275/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/line-graph//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/347/270/246/350/273/270_/344/275/234/346/245/255/346/231/202/351/226/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/scatter//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/345/223/201/350/263/252/343/201/256/351/226/242/344/277/202-/345/256/237/347/270/276/346/231/202/351/226/223-/346/225/231/345/270/253/344/273/230/350/200/205/347/224/250.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/scatter//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/347/264/257/350/250/210/344/275/234/346/245/255/346/231/202/351/226/223/343/201/256/351/226/242/344/277/202-/345/256/237/347/270/276/346/231/202/351/226/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/scatter//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/347/264/257/350/250/210/344/275/234/346/245/255/346/231/202/351/226/223/343/201/256/351/226/242/344/277/202-/350/250/210/346/270/254/346/231/202/351/226/223.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/scatter//346/225/243/345/270/203/345/233/263-/346/225/231/345/270/253/344/273/230/350/200/205/343/201/256/345/223/201/350/263/252/343/201/250/344/275/234/346/245/255/351/207/217/343/201/256/351/226/242/344/277/202.html" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir/task-worktime-by-user-phase.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//343/202/277/343/202/271/343/202/257list.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//343/203/241/343/203/263/343/203/220/343/201/224/343/201/250/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize/out_dir//346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_count/img/attributes_count.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_count/img/labels_count.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_count/output/attributes_count.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_count/output/labels_count.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/img/annotation_duration_by_attribute.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/img/annotation_duration_by_label.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/img/annotation_duration_by_label__with_arrange_bin_edge.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/img/annotation_duration_by_label__with_bin_width.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/img/annotation_duration_by_label__with_minute.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/output/annotation_duration_by_attribute.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration/output/annotation_duration_by_label.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_annotation_duration.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst/task-worktime-list-by-user-phase_csv.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//343/202/277/343/202/271/343/202/257list_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//343/203/241/343/203/263/343/203/220/343/201/224/343/201/250/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245-/345/205/250/344/275/223_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245-/347/270/246/350/273/270_/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/345/215/230/344/275/215/343/201/256/346/214/207/346/250/231-phase/347/224/250.html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/345/205/250/344/275/223_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/345/223/201/350/263/252/343/201/256/351/226/242/344/277/202-/346/225/231/345/270/253/344/273/230/350/200/205/347/224/250_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/225/243/345/270/203/345/233/263-/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/343/201/202/343/201/237/343/202/212/344/275/234/346/245/255/346/231/202/351/226/223/343/201/250/347/264/257/350/250/210/344/275/234/346/245/255/346/231/202/351/226/223/343/201/256/351/226/242/344/277/202_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/225/243/345/270/203/345/233/263-/346/225/231/345/270/253/344/273/230/350/200/205/343/201/256/345/223/201/350/263/252/343/201/250/344/275/234/346/245/255/351/207/217/343/201/256/351/226/242/344/277/202_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247_csv.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/346/225/260-phase/350/200/205/347/224/250_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/345/205/250/344/275/223_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_output_rst//347/264/257/347/251/215/346/212/230/343/202/214/347/267/232-/346/250/252/350/273/270_/346/227/245-/347/270/246/350/273/270_/344/275/234/346/245/255/346/231/202/351/226/223_html.rst" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_video_duration/img/out.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_video_duration/img/out2.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_video_duration/img/out3.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_video_duration/output/out.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/statistics/visualize_video_duration.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/supplementary/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/supplementary/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/supplementary/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/supplementary/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/supplementary/put.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/cancel_acceptance.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/change_operator.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/change_status_to_break.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/change_status_to_on_hold.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/complete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/copy.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/delete.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/delete_metadata_key.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/list_added_task_history.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/list_all.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/list_all_added_task_history.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/put.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/put_by_count.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/reject.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task/update_metadata.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history/list/out.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history/list.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history/list_all.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/download.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/command_reference/task_history_event/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/conf.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/examples/edit_annotation.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/examples/http_private_storage.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/examples/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/faq.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/requirements.txt +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/3dpc-editor.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/cli_usage_output.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/command_line_options.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/configurations.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/index.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/docs/user_guide/user_guide.rst +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/examples/async_wait_jobs.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/pylintrc +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/pyproject.toml +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/pytest.ini +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/scripts/mask_user_info_for_all_visualization_dir.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/scripts/mask_user_info_for_rating_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/test_annotation_query.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/test_copy_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/test_import_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/test_merge_segmentation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation/test_remove_segmentation_overlap.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation_specs/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation_specs/get_annotation_specs_with_choice_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation_specs/test_attribute_restriction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation_specs/test_get_annotation_specs_with_attribute_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/annotation_specs/test_get_annotation_specs_with_label_id_replaced.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/test_bokeh.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/test_cli.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/test_download.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/test_image.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/common/test_utils.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation/3dpc-simple-annotation/test4_0/1533151603547590/01FHSFFPHF2E5WJX8HHF0J1WCT +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation/3dpc-simple-annotation/test4_0/1533151603547590.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation/import_annotation/annotation_specs.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation/import_annotation/image_annotation.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation/imported-annotation.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/annotation_specs/annotation_specs.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/arg.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/arg_id_list.txt +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/input_data_id.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/label_color.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-A/task1/input1.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-A/task1/input2.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-A/task2/input2/1e2931d2-de34-4956-ab75-81f710dc0108 +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-A/task2/input2.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-A.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-B/task1/input1.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-B/task1/input3.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/merge/annotation-B/task3/input2.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/simple-annotation.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/user1.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/user2.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/filesystem/user2_1.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/input_data.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/input_data2.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/input_data_duplicated.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/input_data_duplicated_name.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/input_data_duplicated_path.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data/lenna.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/input_data2.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/instruction/instruction.html +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/instruction/lenna.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/label_color.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/lenna.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/project_member/project_members.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/simple-annotation.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/simple-annotation.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/small-lenna.png +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/mask_visualization_dir/visualization1/task-worktime-list-by-user-phase.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/mask_visualization_dir/visualization1//343/202/277/343/202/271/343/202/257list.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/mask_visualization_dir/visualization1//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/merge_visualization_dir/visualization1/project_info.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/merge_visualization_dir/visualization1/task-worktime-list-by-user-phase.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/merge_visualization_dir/visualization1//343/202/277/343/202/271/343/202/257list.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/merge_visualization_dir/visualization1//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/summarize_whole_performance_csv/visualization1/project_info.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/summarize_whole_performance_csv/visualization1//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir/project_info.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir/task-worktime-list-by-user-phase.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//343/202/277/343/202/271/343/202/257list.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//343/203/241/343/203/263/343/203/220/343/201/224/343/201/250/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/visualization-dir//346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/write_performance_rating_csv/visualization1/project_info.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/stat_visualization/write_performance_rating_csv/visualization1//343/203/241/343/203/263/343/203/220/343/201/224/343/201/250/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/annotation-count-ratio-df.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/input_data.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/inspection-comment.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/labor-df.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/list_annotation_area/annotation/test_17/6026efe3-7eea-47c2-9dc6-83f452b22900/1b3f0069-9d88-4781-8406-023180822407 +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/list_annotation_area/annotation/test_17/6026efe3-7eea-47c2-9dc6-83f452b22900/2d9884e3-6926-47dc-97d4-d9f55d113625 +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/list_annotation_area/annotation/test_17/6026efe3-7eea-47c2-9dc6-83f452b22900/7604d4ea-4288-4f31-bed9-d5624571e52f +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/list_annotation_area/annotation/test_17/6026efe3-7eea-47c2-9dc6-83f452b22900.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/productivity-per-date.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/productivity-per-date2.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/productivity-per-user.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/productivity-per-user2.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/simple-annotations.zip +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task-history-df-empty.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task-history-df.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task-history.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task-worktime-by-user-phase.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/task.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/user.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/visualization-dir1/project_info.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/visualization-dir1//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/visualization-dir1//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics/worktime-per-date.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics//343/203/246/343/203/274/343/202/266_/346/227/245/344/273/230list-/344/275/234/346/245/255/346/231/202/351/226/223.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics//345/205/250/344/275/223/343/201/256/347/224/237/347/224/243/346/200/247/343/201/250/345/223/201/350/263/252.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/247.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/statistics//346/225/231/345/270/253/344/273/230/351/226/213/345/247/213/346/227/245/346/257/216/343/201/256/347/224/237/347/224/243/351/207/217/343/201/250/347/224/237/347/224/243/346/200/2472.csv" +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/supplementary/deleted-supplementary.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/supplementary/supplementary.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/task/put_task.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/task-history.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/task.json +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/utils/example-utf8.txt +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/utils/example-utf8bom.txt +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/data/utils/multiheader.csv +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/filesystem/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/filesystem/test_mask_user_info.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/input_data/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/input_data/test_put_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/project_member/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/project_member/test_change_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/project_member/test_put_project_members.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/stat_visualization/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/stat_visualization/test_mask_visualization_dir.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_list_annotation_area.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_list_annotation_attribute_filled_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_list_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_list_annotation_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_summarize_task_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_summarize_task_count_by_task_id_group.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_table.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_visualize_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_visualize_annotation_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/test_visualize_video_duration.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_annotation_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_cumulative_productivity.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_inspection_comment_count.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_productivity_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_project_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_task_worktime_by_phase_user.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_user_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_whole_performance.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_whole_productivity_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/dataframe/test_worktime_per_date.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/statistics/visualization/test_write_performance_rating_csv.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/supplementary/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/supplementary/test_put_supplementary_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/task/__init__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/task/test_complete_tasks.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/task/test_list_tasks_added_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test____main__.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_annotation.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_annotation_specs.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_comment.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_filesystem.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_input_data.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_instruction.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_job.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_my_account.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_organization.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_organization_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_project.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_project_member.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_stat_visualization.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_statistics.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_supplementary.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_task.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_task_history.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/test_task_history_event.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/tests/utils_for_test.py +0 -0
- {annofabcli-1.104.1 → annofabcli-1.105.1}/uv.lock +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# 概要
|
|
2
|
+
* annofabcliとは、CLIでAnnofabを操作するコマンドです。
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# ユーザーインターフェイス
|
|
6
|
+
* できるだけ、他のコマンドと引数の名前や使い方を揃えてください。詳細は https://annofab-cli.readthedocs.io/ja/latest/user_guide/command_line_options.html を参照してください。
|
|
7
|
+
* 副作用があるコマンドは、標準出力でyes/noを問い合わせてください。
|
|
8
|
+
|
|
9
|
+
# 開発
|
|
10
|
+
|
|
11
|
+
## スタイルと言語
|
|
12
|
+
* Python 3.9以上で動くコードにしてください。
|
|
13
|
+
* できるだけ型ヒントを付けてください。
|
|
14
|
+
* Annofab Web API へのアクセスは、[annofabapi](https://github.com/kurusugawa-computer/annofab-api-python-client)を使ってください。
|
|
15
|
+
* ユーザーにyes/noを問い合わせる場合は、`annofabcli.common.cli.CommandLineWithConfirm`を継承して、`confirm_processing`メソッドを使ってください。
|
|
16
|
+
* `typing.Dict`や`typing.List`など、Python3.9で非推奨になったクラスは使わないでください。
|
|
17
|
+
* 原則、`import`文はファイルの先頭に記述してください。関数の内部でimportしないでください。
|
|
18
|
+
* 新しくコマンドを作成したら、`docs/command_reference`配下にreStructuredTextでドキュメントを記載してください。
|
|
19
|
+
|
|
@@ -105,6 +105,11 @@ def _get_additional_data_v2(additional_data: dict[str, Any], attribute_value: At
|
|
|
105
105
|
return get_english_message(additional_data["name"])
|
|
106
106
|
|
|
107
107
|
additional_data_definition_id = additional_data["additional_data_definition_id"]
|
|
108
|
+
if attribute_value is None:
|
|
109
|
+
return {
|
|
110
|
+
"definition_id": additional_data_definition_id,
|
|
111
|
+
"value": None,
|
|
112
|
+
}
|
|
108
113
|
|
|
109
114
|
additional_data_type: str = additional_data["type"]
|
|
110
115
|
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import json
|
|
5
|
+
import logging
|
|
6
|
+
import sys
|
|
7
|
+
from collections import defaultdict
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any, Optional, Union
|
|
10
|
+
|
|
11
|
+
import annofabapi
|
|
12
|
+
import pandas
|
|
13
|
+
from annofabapi.models import ProjectMemberRole
|
|
14
|
+
from annofabapi.pydantic_models.task_status import TaskStatus
|
|
15
|
+
from pydantic import BaseModel
|
|
16
|
+
|
|
17
|
+
import annofabcli
|
|
18
|
+
from annofabcli.annotation.annotation_query import convert_attributes_from_cli_to_additional_data_list_v2
|
|
19
|
+
from annofabcli.annotation.dump_annotation import DumpAnnotationMain
|
|
20
|
+
from annofabcli.common.cli import (
|
|
21
|
+
COMMAND_LINE_ERROR_STATUS_CODE,
|
|
22
|
+
ArgumentParser,
|
|
23
|
+
CommandLine,
|
|
24
|
+
CommandLineWithConfirm,
|
|
25
|
+
build_annofabapi_resource_and_login,
|
|
26
|
+
get_json_from_args,
|
|
27
|
+
)
|
|
28
|
+
from annofabcli.common.facade import AnnofabApiFacade
|
|
29
|
+
|
|
30
|
+
logger = logging.getLogger(__name__)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
Attributes = dict[str, Optional[Union[str, int, bool]]]
|
|
34
|
+
"""属性情報"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class TargetAnnotation(BaseModel):
|
|
38
|
+
task_id: str
|
|
39
|
+
input_data_id: str
|
|
40
|
+
annotation_id: str
|
|
41
|
+
attributes: Attributes
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def get_annotation_list_per_task_id_input_data_id(anno_list: list[TargetAnnotation]) -> dict[str, dict[str, list[TargetAnnotation]]]:
|
|
45
|
+
"""
|
|
46
|
+
タスクIDと入力データIDごとにアノテーションをグループ化する。
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
anno_list: アノテーションのリスト
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
タスクIDと入力データIDをキーとしたアノテーションの辞書
|
|
53
|
+
"""
|
|
54
|
+
grouped: dict[str, dict[str, list[TargetAnnotation]]] = defaultdict(lambda: defaultdict(list))
|
|
55
|
+
|
|
56
|
+
for annotation in anno_list:
|
|
57
|
+
grouped[annotation.task_id][annotation.input_data_id].append(annotation)
|
|
58
|
+
return grouped
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class ChangeAnnotationAttributesPerAnnotationMain(CommandLineWithConfirm):
|
|
62
|
+
def __init__(
|
|
63
|
+
self,
|
|
64
|
+
service: annofabapi.Resource,
|
|
65
|
+
*,
|
|
66
|
+
project_id: str,
|
|
67
|
+
is_force: bool,
|
|
68
|
+
all_yes: bool,
|
|
69
|
+
backup_dir: Optional[Path] = None,
|
|
70
|
+
) -> None:
|
|
71
|
+
self.service = service
|
|
72
|
+
self.project_id = project_id
|
|
73
|
+
self.is_force = is_force
|
|
74
|
+
self.backup_dir = backup_dir
|
|
75
|
+
self.annotation_specs, _ = self.service.api.get_annotation_specs(project_id, query_params={"v": "3"})
|
|
76
|
+
self.dump_annotation_obj = DumpAnnotationMain(service, project_id)
|
|
77
|
+
super().__init__(all_yes)
|
|
78
|
+
|
|
79
|
+
def change_annotation_attributes_by_frame(self, task_id: str, input_data_id: str, anno_list: list[TargetAnnotation]) -> bool:
|
|
80
|
+
"""
|
|
81
|
+
フレームごとにアノテーション属性値を変更する。
|
|
82
|
+
|
|
83
|
+
Args:
|
|
84
|
+
task_id: タスクID
|
|
85
|
+
input_data_id: 入力データID
|
|
86
|
+
additional_data_list: 変更後の属性値(`AdditionalDataListV2`スキーマ)
|
|
87
|
+
|
|
88
|
+
"""
|
|
89
|
+
editor_annotation, _ = self.service.api.get_editor_annotation(self.project_id, task_id=task_id, input_data_id=input_data_id, query_params={"v": "2"})
|
|
90
|
+
|
|
91
|
+
if self.backup_dir is not None:
|
|
92
|
+
(self.backup_dir / task_id).mkdir(exist_ok=True, parents=True)
|
|
93
|
+
self.dump_annotation_obj.dump_editor_annotation(editor_annotation, json_path=self.backup_dir / task_id / f"{input_data_id}.json")
|
|
94
|
+
|
|
95
|
+
details_map = {detail["annotation_id"]: detail for detail in editor_annotation["details"]}
|
|
96
|
+
|
|
97
|
+
def _to_request_body_elm(anno: TargetAnnotation) -> dict[str, Any]:
|
|
98
|
+
additional_data_list = convert_attributes_from_cli_to_additional_data_list_v2(anno.attributes, annotation_specs=self.annotation_specs)
|
|
99
|
+
return {
|
|
100
|
+
"data": {
|
|
101
|
+
"project_id": editor_annotation["project_id"],
|
|
102
|
+
"task_id": editor_annotation["task_id"],
|
|
103
|
+
"input_data_id": editor_annotation["input_data_id"],
|
|
104
|
+
"updated_datetime": editor_annotation["updated_datetime"],
|
|
105
|
+
"annotation_id": anno.annotation_id,
|
|
106
|
+
"label_id": details_map[anno.annotation_id]["label_id"],
|
|
107
|
+
"additional_data_list": additional_data_list,
|
|
108
|
+
},
|
|
109
|
+
"_type": "PutV2",
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
request_body = [_to_request_body_elm(annotation) for annotation in anno_list]
|
|
113
|
+
|
|
114
|
+
self.service.api.batch_update_annotations(self.project_id, request_body=request_body)
|
|
115
|
+
logger.debug(f"task_id='{task_id}', input_data_id='{input_data_id}' :: {len(request_body)}件の属性値を変更しました。")
|
|
116
|
+
return True
|
|
117
|
+
|
|
118
|
+
def change_annotation_attributes_for_task(self, task_id: str, annotation_list_per_input_data_id: dict[str, list[TargetAnnotation]]) -> tuple[bool, int, int]:
|
|
119
|
+
"""
|
|
120
|
+
1個のタスクに含まれるアノテーションの属性値を変更する。
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
task_id: タスクID
|
|
124
|
+
annotation_list_per_input_data_id: 入力データIDごとのアノテーションリスト
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
tuple:
|
|
128
|
+
[0]: 属性値の変更可能なタスクかどうか
|
|
129
|
+
[1]: 属性値の変更に成功したアノテーション数
|
|
130
|
+
[2]: 属性値を変更できなかったアノテーション数
|
|
131
|
+
|
|
132
|
+
"""
|
|
133
|
+
annotation_count = sum(len(v) for v in annotation_list_per_input_data_id.values())
|
|
134
|
+
task = self.service.wrapper.get_task_or_none(self.project_id, task_id)
|
|
135
|
+
|
|
136
|
+
succeed_to_change_annotation_count = 0
|
|
137
|
+
failed_to_change_annotation_count = 0
|
|
138
|
+
|
|
139
|
+
if task is None:
|
|
140
|
+
logger.warning(f"task_id='{task_id}' :: タスクが存在しないため、{annotation_count} 件のアノテーションの属性値の変更をスキップします。")
|
|
141
|
+
return False, 0, annotation_count
|
|
142
|
+
|
|
143
|
+
if task["status"] == TaskStatus.WORKING.value:
|
|
144
|
+
logger.info(f"task_id='{task_id}' :: タスクが作業中状態のため、{annotation_count} 件のアノテーションの属性値の変更をスキップします。")
|
|
145
|
+
failed_to_change_annotation_count += annotation_count
|
|
146
|
+
return False, 0, annotation_count
|
|
147
|
+
|
|
148
|
+
if not self.is_force: # noqa: SIM102
|
|
149
|
+
if task["status"] == TaskStatus.COMPLETE.value:
|
|
150
|
+
logger.info(
|
|
151
|
+
f"task_id='{task_id}' :: タスクが完了状態のため、アノテーション {annotation_count} 件のアノテーションの属性値の変更をスキップします。"
|
|
152
|
+
f"完了状態のタスクのアノテーションを削除するには、`--force`オプションを指定してください。"
|
|
153
|
+
)
|
|
154
|
+
failed_to_change_annotation_count += annotation_count
|
|
155
|
+
return False, 0, annotation_count
|
|
156
|
+
|
|
157
|
+
if not self.confirm_processing(f"task_id='{task_id}'に含まれるアノテーション{annotation_count}件の属性値を変更しますか?"):
|
|
158
|
+
return False, 0, annotation_count
|
|
159
|
+
|
|
160
|
+
for input_data_id, sub_anno_list in annotation_list_per_input_data_id.items():
|
|
161
|
+
try:
|
|
162
|
+
if self.change_annotation_attributes_by_frame(task_id, input_data_id, sub_anno_list):
|
|
163
|
+
succeed_to_change_annotation_count += len(sub_anno_list)
|
|
164
|
+
else:
|
|
165
|
+
failed_to_change_annotation_count += len(sub_anno_list)
|
|
166
|
+
except Exception:
|
|
167
|
+
logger.warning(f"task_id='{task_id}', input_data_id='{input_data_id}' :: アノテーションの属性値変更に失敗しました。", exc_info=True)
|
|
168
|
+
failed_to_change_annotation_count += len(sub_anno_list)
|
|
169
|
+
continue
|
|
170
|
+
|
|
171
|
+
return True, succeed_to_change_annotation_count, failed_to_change_annotation_count
|
|
172
|
+
|
|
173
|
+
def change_annotation_attributes(self, anno_list: list[TargetAnnotation]) -> None:
|
|
174
|
+
"""
|
|
175
|
+
アノテーションごとに属性値を変更する。
|
|
176
|
+
|
|
177
|
+
Args:
|
|
178
|
+
anno_list: 各アノテーションの変更内容リスト
|
|
179
|
+
"""
|
|
180
|
+
changed_task_count = 0
|
|
181
|
+
failed_to_change_annotation_count = 0
|
|
182
|
+
annotation_list_per_task_id_input_data_id = get_annotation_list_per_task_id_input_data_id(anno_list)
|
|
183
|
+
|
|
184
|
+
total_task_count = len(annotation_list_per_task_id_input_data_id)
|
|
185
|
+
total_annotation_count = len(anno_list)
|
|
186
|
+
|
|
187
|
+
for task_id, input_data_dict in annotation_list_per_task_id_input_data_id.items():
|
|
188
|
+
is_changeable_task, succeed_to_change_annotation_count, failed_to_change_annotation_count = self.change_annotation_attributes_for_task(task_id, input_data_dict)
|
|
189
|
+
if is_changeable_task:
|
|
190
|
+
changed_task_count += 1
|
|
191
|
+
|
|
192
|
+
logger.info(
|
|
193
|
+
f"{succeed_to_change_annotation_count}/{total_annotation_count} 件のアノテーションの属性値を変更しました。 :: "
|
|
194
|
+
f"アノテーションが変更されたタスク数は {changed_task_count}/{total_task_count} 件です。"
|
|
195
|
+
f"{failed_to_change_annotation_count} 件のアノテーションは変更できませんでした。"
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class ChangeAttributesPerAnnotation(CommandLine):
|
|
200
|
+
"""
|
|
201
|
+
アノテーションごとに属性値を個別変更
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
COMMON_MESSAGE = "annofabcli annotation change_attributes_per_annotation: error:"
|
|
205
|
+
|
|
206
|
+
def main(self) -> None:
|
|
207
|
+
args = self.args
|
|
208
|
+
|
|
209
|
+
if args.json is not None:
|
|
210
|
+
annotation_items = get_json_from_args(args.json)
|
|
211
|
+
if not isinstance(annotation_items, list):
|
|
212
|
+
print(f"{self.COMMON_MESSAGE} argument --json: JSON形式が不正です。オブジェクトの配列を指定してください。", file=sys.stderr) # noqa: T201
|
|
213
|
+
sys.exit(COMMAND_LINE_ERROR_STATUS_CODE)
|
|
214
|
+
|
|
215
|
+
target_annotation_list = [TargetAnnotation.model_validate(anno) for anno in annotation_items]
|
|
216
|
+
|
|
217
|
+
elif args.csv is not None:
|
|
218
|
+
df_input = pandas.read_csv(args.csv)
|
|
219
|
+
target_annotation_list = [
|
|
220
|
+
TargetAnnotation(task_id=e["task_id"], input_data_id=e["input_data_id"], annotation_id=e["annotation_id"], attributes=json.loads(e["attributes"]))
|
|
221
|
+
for e in df_input.to_dict(orient="records")
|
|
222
|
+
]
|
|
223
|
+
else:
|
|
224
|
+
print(f"{self.COMMON_MESSAGE} argument '--json' または '--csv' のいずれかを指定してください。", file=sys.stderr) # noqa: T201
|
|
225
|
+
sys.exit(COMMAND_LINE_ERROR_STATUS_CODE)
|
|
226
|
+
|
|
227
|
+
project_id = args.project_id
|
|
228
|
+
|
|
229
|
+
if args.backup is None:
|
|
230
|
+
print( # noqa: T201
|
|
231
|
+
"間違えてアノテーションを変更してしまっときに復元できるようにするため、'--backup'でバックアップ用のディレクトリを指定することを推奨します。",
|
|
232
|
+
file=sys.stderr,
|
|
233
|
+
)
|
|
234
|
+
if not self.confirm_processing("復元用のバックアップディレクトリが指定されていません。処理を続行しますか?"):
|
|
235
|
+
sys.exit(COMMAND_LINE_ERROR_STATUS_CODE)
|
|
236
|
+
backup_dir = None
|
|
237
|
+
else:
|
|
238
|
+
backup_dir = Path(args.backup)
|
|
239
|
+
|
|
240
|
+
# プロジェクト権限チェック
|
|
241
|
+
super().validate_project(project_id, [ProjectMemberRole.OWNER, ProjectMemberRole.ACCEPTER])
|
|
242
|
+
|
|
243
|
+
main_obj = ChangeAnnotationAttributesPerAnnotationMain(self.service, project_id=project_id, all_yes=args.yes, is_force=args.force, backup_dir=backup_dir)
|
|
244
|
+
main_obj.change_annotation_attributes(target_annotation_list)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def main(args: argparse.Namespace) -> None:
|
|
248
|
+
service = build_annofabapi_resource_and_login(args)
|
|
249
|
+
facade = AnnofabApiFacade(service)
|
|
250
|
+
ChangeAttributesPerAnnotation(service, facade, args).main()
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def parse_args(parser: argparse.ArgumentParser) -> None:
|
|
254
|
+
argument_parser = ArgumentParser(parser)
|
|
255
|
+
argument_parser.add_project_id()
|
|
256
|
+
|
|
257
|
+
sample_json_obj = [{"task_id": "t1", "input_data_id": "i1", "annotation_id": "a1", "attributes": {"occluded": True}}]
|
|
258
|
+
input_group = parser.add_mutually_exclusive_group(required=True)
|
|
259
|
+
input_group.add_argument(
|
|
260
|
+
"--json",
|
|
261
|
+
type=str,
|
|
262
|
+
help="各アノテーションごとに変更内容を記載したJSONリストを指定します。 ``file://`` を先頭に付けるとJSON形式のファイルを指定できます。\n"
|
|
263
|
+
f"(例) '{json.dumps(sample_json_obj, ensure_ascii=False)}'",
|
|
264
|
+
)
|
|
265
|
+
input_group.add_argument(
|
|
266
|
+
"--csv",
|
|
267
|
+
type=str,
|
|
268
|
+
help="各アノテーションごとに変更内容を記載したCSVファイルを指定します。 \n"
|
|
269
|
+
"* `task_id`, `input_data_id`, `annotation_id`, `attributes` の4つのカラムが必要です。\n"
|
|
270
|
+
f"`attributes` カラムには、属性名と値を '{json.dumps({'occluded': True})}' のようにJSON形式で指定します。\n",
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
parser.add_argument(
|
|
274
|
+
"--force",
|
|
275
|
+
action="store_true",
|
|
276
|
+
help="指定した場合は、完了状態のタスクのアノテーションも属性値を変更します。ただし、完了状態のタスクのアノテーションを変更するには、オーナーロールを持つユーザーが実行する必要があります。",
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
parser.add_argument(
|
|
280
|
+
"--backup",
|
|
281
|
+
type=Path,
|
|
282
|
+
required=False,
|
|
283
|
+
help="アノテーションのバックアップを保存するディレクトリのパス。アノテーションの復元は ``annotation restore`` コマンドで実現できます。",
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
parser.set_defaults(subcommand_func=main)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
def add_parser(subparsers: Optional[argparse._SubParsersAction] = None) -> argparse.ArgumentParser:
|
|
290
|
+
subcommand_name = "change_attributes_per_annotation"
|
|
291
|
+
subcommand_help = "各アノテーションの属性値を変更します。"
|
|
292
|
+
epilog = "オーナロールまたはチェッカーロールを持つユーザで実行してください。"
|
|
293
|
+
|
|
294
|
+
parser = annofabcli.common.cli.add_parser(subparsers, subcommand_name, subcommand_help, epilog=epilog)
|
|
295
|
+
parse_args(parser)
|
|
296
|
+
return parser
|
|
@@ -296,8 +296,7 @@ class DeleteAnnotationMain(CommandLineWithConfirm):
|
|
|
296
296
|
deleted_task_count += 1
|
|
297
297
|
for input_data_id, annotation_ids in sub_grouped.items():
|
|
298
298
|
# 指定input_data_idの全annotationを取得
|
|
299
|
-
|
|
300
|
-
editor_annotation = self.service.wrapper.get_editor_annotation_or_none(self.project_id, task_id=task_id, input_data_id=input_data_id, query_params={"v": "1"})
|
|
299
|
+
editor_annotation = self.service.wrapper.get_editor_annotation_or_none(self.project_id, task_id=task_id, input_data_id=input_data_id, query_params={"v": "2"})
|
|
301
300
|
if editor_annotation is None:
|
|
302
301
|
logger.warning(
|
|
303
302
|
f"task_id='{task_id}'のタスクに、input_data_id='{input_data_id}'の入力データが含まれていません。 アノテーションの削除をスキップします。 :: annotation_ids={annotation_ids}"
|
|
@@ -27,26 +27,44 @@ class DumpAnnotationMain:
|
|
|
27
27
|
def dump_editor_annotation(self, editor_annotation: dict[str, Any], json_path: Path) -> None:
|
|
28
28
|
"""
|
|
29
29
|
`getEditorAnnotation` APIのレスポンスをファイルに保存する。
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
editor_annotation: v1, v2 のどちらの形式でも対応。
|
|
30
33
|
"""
|
|
31
34
|
json_path.write_text(json.dumps(editor_annotation, ensure_ascii=False), encoding="utf-8")
|
|
32
|
-
|
|
33
35
|
details = editor_annotation["details"]
|
|
34
|
-
outer_details = [e for e in details if e["data_holding_type"] == AnnotationDataHoldingType.OUTER.value]
|
|
35
|
-
if len(outer_details) == 0:
|
|
36
|
-
return
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
if editor_annotation.get("format_version") == "2.0.0":
|
|
38
|
+
outer_details = [e for e in details if e["body"]["_type"] == "Outer"]
|
|
39
|
+
if len(outer_details) == 0:
|
|
40
|
+
return
|
|
41
|
+
|
|
42
|
+
input_data_id = editor_annotation["input_data_id"]
|
|
43
|
+
outer_dir = json_path.parent / input_data_id
|
|
44
|
+
outer_dir.mkdir(exist_ok=True, parents=True)
|
|
45
|
+
# 塗りつぶし画像など外部リソースに保存されているファイルをダウンロードする
|
|
46
|
+
for detail in outer_details:
|
|
47
|
+
annotation_id = detail["annotation_id"]
|
|
48
|
+
outer_file_path = outer_dir / f"{annotation_id}"
|
|
49
|
+
self.service.wrapper.download(detail["body"]["url"], outer_file_path)
|
|
50
|
+
|
|
51
|
+
else:
|
|
52
|
+
outer_details = [e for e in details if e["data_holding_type"] == AnnotationDataHoldingType.OUTER.value]
|
|
53
|
+
if len(outer_details) == 0:
|
|
54
|
+
return
|
|
55
|
+
|
|
56
|
+
input_data_id = editor_annotation["input_data_id"]
|
|
57
|
+
outer_dir = json_path.parent / input_data_id
|
|
58
|
+
outer_dir.mkdir(exist_ok=True, parents=True)
|
|
41
59
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
# 塗りつぶし画像など外部リソースに保存されているファイルをダウンロードする
|
|
61
|
+
for detail in outer_details:
|
|
62
|
+
annotation_id = detail["annotation_id"]
|
|
63
|
+
outer_file_path = outer_dir / f"{annotation_id}"
|
|
64
|
+
self.service.wrapper.download(detail["url"], outer_file_path)
|
|
47
65
|
|
|
48
66
|
def dump_annotation_for_input_data(self, task_id: str, input_data_id: str, task_dir: Path) -> None:
|
|
49
|
-
editor_annotation, _ = self.service.api.get_editor_annotation(self.project_id, task_id, input_data_id)
|
|
67
|
+
editor_annotation, _ = self.service.api.get_editor_annotation(self.project_id, task_id, input_data_id, query_params={"v": "2"})
|
|
50
68
|
json_path = task_dir / f"{input_data_id}.json"
|
|
51
69
|
self.dump_editor_annotation(editor_annotation=editor_annotation, json_path=json_path)
|
|
52
70
|
|
|
@@ -74,10 +74,17 @@ class RestoreAnnotationMain(CommandLineWithConfirm):
|
|
|
74
74
|
|
|
75
75
|
return detail
|
|
76
76
|
|
|
77
|
-
def
|
|
77
|
+
def editor_annotation_to_request_body_v1(self, editor_annotation: dict[str, Any], parser: SimpleAnnotationParser) -> dict[str, Any]:
|
|
78
|
+
"""
|
|
79
|
+
`get_editor_annotation`で取得したアノテーション(v1)を、`put_annotation` APIに渡すリクエストボディ(v1)に変換する。
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
editor_annotation: `get_editor_annotation`で取得したアノテーション(v1)
|
|
83
|
+
parser: SimpleAnnotationParserインスタンス。アノテーションのファイルを開くために利用する。
|
|
84
|
+
"""
|
|
78
85
|
# infer_missing=Trueを指定する理由:Optional型のキーが存在しない場合でも、AnnotationV1データクラスのインスタンスを生成できるようにするため
|
|
79
86
|
# https://qiita.com/yuji38kwmt/items/c5b56f70da3b8a70ba31
|
|
80
|
-
annotation: AnnotationV1 = AnnotationV1.from_dict(
|
|
87
|
+
annotation: AnnotationV1 = AnnotationV1.from_dict(editor_annotation, infer_missing=True)
|
|
81
88
|
request_details: list[dict[str, Any]] = []
|
|
82
89
|
for detail in annotation.details:
|
|
83
90
|
request_detail = self._to_annotation_detail_for_request(parser, detail)
|
|
@@ -94,15 +101,48 @@ class RestoreAnnotationMain(CommandLineWithConfirm):
|
|
|
94
101
|
|
|
95
102
|
return request_body
|
|
96
103
|
|
|
104
|
+
def editor_annotation_to_request_body_v2(self, editor_annotation: dict[str, Any], parser: SimpleAnnotationParser) -> dict[str, Any]:
|
|
105
|
+
"""
|
|
106
|
+
`get_editor_annotation`で取得したアノテーション(v2)を、`put_annotation` APIに渡すリクエストボディ(v2)に変換する。
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
editor_annotation: `get_editor_annotation`で取得したアノテーション(v2)
|
|
110
|
+
parser: SimpleAnnotationParserインスタンス。アノテーションのファイルを開くために利用する。
|
|
111
|
+
"""
|
|
112
|
+
request_details: list[dict[str, Any]] = []
|
|
113
|
+
for detail in editor_annotation["details"]:
|
|
114
|
+
new_detail = copy.deepcopy(detail)
|
|
115
|
+
new_detail["_type"] = "Import"
|
|
116
|
+
annotation_id = detail["annotation_id"]
|
|
117
|
+
detail_body_type = detail["body"]["_type"]
|
|
118
|
+
if detail_body_type == "Outer":
|
|
119
|
+
with parser.open_outer_file(annotation_id) as f:
|
|
120
|
+
# TODO content typeを確認
|
|
121
|
+
s3_path = self.service.wrapper.upload_data_to_s3(self.project_id, f, content_type="application/octet-stream")
|
|
122
|
+
new_detail["body"] = {"path": s3_path, "_type": "Outer"}
|
|
123
|
+
request_details.append(new_detail)
|
|
124
|
+
elif detail_body_type == "Inner":
|
|
125
|
+
request_details.append(new_detail)
|
|
126
|
+
else:
|
|
127
|
+
raise ValueError(f"detail_body_type がサポート対象外です。:: detail={detail}")
|
|
128
|
+
|
|
129
|
+
request_body = {"project_id": self.project_id, "task_id": parser.task_id, "input_data_id": parser.input_data_id, "details": request_details, "format_version": "2.0.0"}
|
|
130
|
+
|
|
131
|
+
return request_body
|
|
132
|
+
|
|
97
133
|
def put_annotation_for_input_data(self, parser: SimpleAnnotationParser) -> bool:
|
|
98
134
|
task_id = parser.task_id
|
|
99
135
|
input_data_id = parser.input_data_id
|
|
100
136
|
|
|
101
|
-
old_annotation, _ = self.service.api.get_editor_annotation(self.project_id, task_id, input_data_id)
|
|
102
|
-
|
|
103
137
|
logger.info(f"task_id='{task_id}', input_data_id='{input_data_id}' :: アノテーションをリストアします。")
|
|
104
|
-
request_body = self.parser_to_request_body(parser)
|
|
105
138
|
|
|
139
|
+
editor_annotation = parser.load_json()
|
|
140
|
+
if editor_annotation.get("format_version") == "2.0.0":
|
|
141
|
+
request_body = self.editor_annotation_to_request_body_v2(editor_annotation, parser)
|
|
142
|
+
else:
|
|
143
|
+
request_body = self.editor_annotation_to_request_body_v1(editor_annotation, parser)
|
|
144
|
+
|
|
145
|
+
old_annotation, _ = self.service.api.get_editor_annotation(self.project_id, task_id, input_data_id, query_params={"v": "2"})
|
|
106
146
|
updated_datetime = old_annotation["updated_datetime"] if old_annotation is not None else None
|
|
107
147
|
request_body["updated_datetime"] = updated_datetime
|
|
108
148
|
self.service.api.put_annotation(self.project_id, task_id, input_data_id, request_body=request_body)
|
|
@@ -2,6 +2,7 @@ import argparse
|
|
|
2
2
|
from typing import Optional
|
|
3
3
|
|
|
4
4
|
import annofabcli.annotation.change_annotation_attributes
|
|
5
|
+
import annofabcli.annotation.change_annotation_attributes_per_annotation
|
|
5
6
|
import annofabcli.annotation.change_annotation_properties
|
|
6
7
|
import annofabcli.annotation.copy_annotation
|
|
7
8
|
import annofabcli.annotation.delete_annotation
|
|
@@ -21,6 +22,7 @@ def parse_args(parser: argparse.ArgumentParser) -> None:
|
|
|
21
22
|
|
|
22
23
|
# サブコマンドの定義
|
|
23
24
|
annofabcli.annotation.change_annotation_attributes.add_parser(subparsers)
|
|
25
|
+
annofabcli.annotation.change_annotation_attributes_per_annotation.add_parser(subparsers)
|
|
24
26
|
annofabcli.annotation.change_annotation_properties.add_parser(subparsers)
|
|
25
27
|
annofabcli.annotation.copy_annotation.add_parser(subparsers)
|
|
26
28
|
annofabcli.annotation.delete_annotation.add_parser(subparsers)
|
|
@@ -67,7 +67,7 @@ class PutCommentMain(CommandLineWithConfirm):
|
|
|
67
67
|
"""batch_update_comments に渡すリクエストボディを作成する。"""
|
|
68
68
|
|
|
69
69
|
def _create_dict_annotation_id() -> dict[str, str]:
|
|
70
|
-
content, _ = self.service.api.get_editor_annotation(self.project_id, task["task_id"], input_data_id)
|
|
70
|
+
content, _ = self.service.api.get_editor_annotation(self.project_id, task["task_id"], input_data_id, query_params={"v": "2"})
|
|
71
71
|
details = content["details"]
|
|
72
72
|
return {e["annotation_id"]: e["label_id"] for e in details}
|
|
73
73
|
|
|
@@ -375,13 +375,10 @@ class AddProps:
|
|
|
375
375
|
|
|
376
376
|
* user_id
|
|
377
377
|
* username
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
task:
|
|
381
|
-
|
|
382
|
-
Returns:
|
|
383
|
-
Task情報
|
|
378
|
+
* request.user_id
|
|
379
|
+
* request.username
|
|
384
380
|
|
|
385
381
|
"""
|
|
386
382
|
self._add_user_info(task_history_event)
|
|
383
|
+
self._add_user_info(task_history_event["request"])
|
|
387
384
|
return task_history_event
|
|
@@ -81,16 +81,34 @@ class ListTaskHistoryEventWithJson(CommandLine):
|
|
|
81
81
|
main_obj = ListTaskHistoryEventWithJsonMain(self.service)
|
|
82
82
|
task_history_event_list = main_obj.get_task_history_event_list(project_id, task_history_event_json=task_history_event_json, task_id_list=task_id_list)
|
|
83
83
|
|
|
84
|
-
logger.debug(f"
|
|
85
|
-
|
|
86
|
-
if
|
|
87
|
-
|
|
84
|
+
logger.debug(f"{len(task_history_event_list)} 件のタスク履歴イベントの情報を出力します。")
|
|
85
|
+
|
|
86
|
+
if arg_format == FormatArgument.CSV:
|
|
87
|
+
columns = [
|
|
88
|
+
"project_id",
|
|
89
|
+
"task_id",
|
|
90
|
+
"task_history_id",
|
|
91
|
+
"created_datetime",
|
|
92
|
+
"phase",
|
|
93
|
+
"phase_stage",
|
|
94
|
+
"status",
|
|
95
|
+
"account_id",
|
|
96
|
+
"request.status",
|
|
97
|
+
"request.account_id",
|
|
98
|
+
"request.user_id",
|
|
99
|
+
"request.username",
|
|
100
|
+
"request.last_updated_datetime",
|
|
101
|
+
"request.force",
|
|
102
|
+
]
|
|
103
|
+
if len(task_history_event_list) > 0:
|
|
88
104
|
df = pandas.json_normalize(task_history_event_list)
|
|
89
|
-
|
|
105
|
+
df = df[columns]
|
|
90
106
|
else:
|
|
91
|
-
|
|
107
|
+
df = pandas.DataFrame(columns=columns)
|
|
108
|
+
|
|
109
|
+
self.print_csv(df)
|
|
92
110
|
else:
|
|
93
|
-
|
|
111
|
+
self.print_according_to_format(task_history_event_list)
|
|
94
112
|
|
|
95
113
|
def main(self) -> None:
|
|
96
114
|
args = self.args
|