annofabcli 1.109.0__py3-none-any.whl → 1.111.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- annofabcli/annotation_zip/list_annotation_bounding_box_2d.py +49 -37
- annofabcli/annotation_zip/list_range_annotation.py +308 -0
- annofabcli/annotation_zip/list_single_point_annotation.py +317 -0
- annofabcli/annotation_zip/subcommand_annotation_zip.py +6 -0
- annofabcli/annotation_zip/validate_annotation.py +393 -0
- annofabcli/common/download.py +97 -0
- annofabcli/statistics/list_annotation_area.py +2 -3
- annofabcli/statistics/list_annotation_attribute_filled_count.py +35 -10
- annofabcli/statistics/list_annotation_count.py +39 -14
- annofabcli/statistics/list_annotation_duration.py +4 -6
- annofabcli/statistics/summarize_task_count.py +53 -33
- annofabcli/statistics/summarize_task_count_by_task_id_group.py +30 -13
- annofabcli/statistics/summarize_task_count_by_user.py +32 -15
- annofabcli/statistics/visualization/dataframe/annotation_count.py +31 -3
- annofabcli/statistics/visualization/dataframe/annotation_duration.py +121 -0
- annofabcli/statistics/visualize_statistics.py +83 -5
- annofabcli/task/complete_tasks.py +2 -2
- annofabcli/task/put_tasks.py +1 -1
- {annofabcli-1.109.0.dist-info → annofabcli-1.111.0.dist-info}/METADATA +1 -1
- {annofabcli-1.109.0.dist-info → annofabcli-1.111.0.dist-info}/RECORD +23 -19
- {annofabcli-1.109.0.dist-info → annofabcli-1.111.0.dist-info}/WHEEL +0 -0
- {annofabcli-1.109.0.dist-info → annofabcli-1.111.0.dist-info}/entry_points.txt +0 -0
- {annofabcli-1.109.0.dist-info → annofabcli-1.111.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -12,7 +12,7 @@ from typing import Any, Callable, Optional
|
|
|
12
12
|
|
|
13
13
|
import annofabapi
|
|
14
14
|
import pandas
|
|
15
|
-
from annofabapi.models import ProjectMemberRole, TaskPhase
|
|
15
|
+
from annofabapi.models import InputDataType, ProjectMemberRole, TaskPhase
|
|
16
16
|
|
|
17
17
|
import annofabcli
|
|
18
18
|
from annofabcli.common.cli import (
|
|
@@ -26,6 +26,7 @@ from annofabcli.common.cli import (
|
|
|
26
26
|
from annofabcli.common.facade import AnnofabApiFacade, TaskQuery
|
|
27
27
|
from annofabcli.statistics.visualization.dataframe.actual_worktime import ActualWorktime
|
|
28
28
|
from annofabcli.statistics.visualization.dataframe.annotation_count import AnnotationCount
|
|
29
|
+
from annofabcli.statistics.visualization.dataframe.annotation_duration import AnnotationDuration
|
|
29
30
|
from annofabcli.statistics.visualization.dataframe.cumulative_productivity import (
|
|
30
31
|
AcceptorCumulativeProductivity,
|
|
31
32
|
AnnotatorCumulativeProductivity,
|
|
@@ -78,6 +79,9 @@ class WriteCsvGraph:
|
|
|
78
79
|
custom_production_volume: Optional[CustomProductionVolume] = None,
|
|
79
80
|
minimal_output: bool = False,
|
|
80
81
|
output_only_text: bool = False,
|
|
82
|
+
production_volume_include_labels: Optional[list[str]] = None,
|
|
83
|
+
production_volume_exclude_labels: Optional[list[str]] = None,
|
|
84
|
+
include_annotation_duration_seconds: bool = False,
|
|
81
85
|
) -> None:
|
|
82
86
|
self.service = service
|
|
83
87
|
self.project_id = project_id
|
|
@@ -91,6 +95,9 @@ class WriteCsvGraph:
|
|
|
91
95
|
self.annotation_count = annotation_count
|
|
92
96
|
self.input_data_count = input_data_count
|
|
93
97
|
self.custom_production_volume = custom_production_volume
|
|
98
|
+
self.production_volume_include_labels = production_volume_include_labels
|
|
99
|
+
self.production_volume_exclude_labels = production_volume_exclude_labels
|
|
100
|
+
self.include_annotation_duration_seconds = include_annotation_duration_seconds
|
|
94
101
|
|
|
95
102
|
self.task: Optional[Task] = None
|
|
96
103
|
self.worktime_per_date: Optional[WorktimePerDate] = None
|
|
@@ -114,7 +121,12 @@ class WriteCsvGraph:
|
|
|
114
121
|
if self.task is None:
|
|
115
122
|
if self.annotation_count is None:
|
|
116
123
|
# アノテーションZIPからアノテーション数を取得
|
|
117
|
-
annotation_count = AnnotationCount.from_annotation_zip(
|
|
124
|
+
annotation_count = AnnotationCount.from_annotation_zip(
|
|
125
|
+
self.visualize_source_files.annotation_zip_path,
|
|
126
|
+
project_id=self.project_id,
|
|
127
|
+
include_labels=self.production_volume_include_labels,
|
|
128
|
+
exclude_labels=self.production_volume_exclude_labels,
|
|
129
|
+
)
|
|
118
130
|
else:
|
|
119
131
|
annotation_count = self.annotation_count
|
|
120
132
|
|
|
@@ -125,6 +137,36 @@ class WriteCsvGraph:
|
|
|
125
137
|
new_tasks = filter_tasks(tasks, self.task_completion_criteria, self.filtering_query, task_histories=task_histories)
|
|
126
138
|
logger.debug(f"project_id='{self.project_id}' :: 集計対象タスクは {len(new_tasks)} / {len(tasks)} 件です。")
|
|
127
139
|
|
|
140
|
+
# annotation_duration_secondsを生産量に含める場合、アノテーション時間を計算
|
|
141
|
+
custom_production_volume = self.custom_production_volume
|
|
142
|
+
if self.include_annotation_duration_seconds:
|
|
143
|
+
logger.debug(f"project_id='{self.project_id}' :: 区間アノテーションの長さ('annotation_duration_second')を計算します。")
|
|
144
|
+
annotation_duration_obj = AnnotationDuration.from_annotation_zip(
|
|
145
|
+
self.visualize_source_files.annotation_zip_path,
|
|
146
|
+
project_id=self.project_id,
|
|
147
|
+
include_labels=self.production_volume_include_labels,
|
|
148
|
+
exclude_labels=self.production_volume_exclude_labels,
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
if custom_production_volume is not None:
|
|
152
|
+
# 既存のCustomProductionVolumeのデータと結合
|
|
153
|
+
if not custom_production_volume.is_empty():
|
|
154
|
+
annotation_duration_df = pandas.merge(custom_production_volume.df, annotation_duration_obj.df, on=["project_id", "task_id"], how="outer")
|
|
155
|
+
else:
|
|
156
|
+
annotation_duration_df = annotation_duration_obj.df
|
|
157
|
+
|
|
158
|
+
# annotation_duration_secondを含む新しいProductionVolumeColumnリストを作成
|
|
159
|
+
annotation_duration_column = ProductionVolumeColumn(value="annotation_duration_second", name="区間アノテーションの長さ(秒)")
|
|
160
|
+
new_production_volume_list = list(custom_production_volume.custom_production_volume_list)
|
|
161
|
+
if annotation_duration_column not in new_production_volume_list:
|
|
162
|
+
new_production_volume_list.append(annotation_duration_column)
|
|
163
|
+
|
|
164
|
+
custom_production_volume = CustomProductionVolume(annotation_duration_df, custom_production_volume_list=new_production_volume_list)
|
|
165
|
+
else:
|
|
166
|
+
# CustomProductionVolumeが存在しない場合、新規作成
|
|
167
|
+
annotation_duration_column = ProductionVolumeColumn(value="annotation_duration_second", name="区間アノテーションの長さ(秒)")
|
|
168
|
+
custom_production_volume = CustomProductionVolume(annotation_duration_obj.df, custom_production_volume_list=[annotation_duration_column])
|
|
169
|
+
|
|
128
170
|
self.task = Task.from_api_content(
|
|
129
171
|
tasks=new_tasks,
|
|
130
172
|
task_histories=task_histories,
|
|
@@ -133,7 +175,7 @@ class WriteCsvGraph:
|
|
|
133
175
|
input_data_count=self.input_data_count,
|
|
134
176
|
project_id=self.project_id,
|
|
135
177
|
annofab_service=self.service,
|
|
136
|
-
custom_production_volume=
|
|
178
|
+
custom_production_volume=custom_production_volume,
|
|
137
179
|
)
|
|
138
180
|
|
|
139
181
|
return self.task
|
|
@@ -276,6 +318,8 @@ class VisualizingStatisticsMain:
|
|
|
276
318
|
custom_production_volume: Optional[CustomProductionVolume] = None,
|
|
277
319
|
user_ids: Optional[list[str]] = None,
|
|
278
320
|
not_download_visualization_source_files: bool = False,
|
|
321
|
+
production_volume_include_labels: Optional[list[str]] = None,
|
|
322
|
+
production_volume_exclude_labels: Optional[list[str]] = None,
|
|
279
323
|
) -> None:
|
|
280
324
|
self.service = service
|
|
281
325
|
self.facade = AnnofabApiFacade(service)
|
|
@@ -292,6 +336,8 @@ class VisualizingStatisticsMain:
|
|
|
292
336
|
self.custom_production_volume = custom_production_volume
|
|
293
337
|
self.user_ids = user_ids
|
|
294
338
|
self.not_download_visualization_source_files = not_download_visualization_source_files
|
|
339
|
+
self.production_volume_include_labels = production_volume_include_labels
|
|
340
|
+
self.production_volume_exclude_labels = production_volume_exclude_labels
|
|
295
341
|
|
|
296
342
|
def get_project_info(self, project_id: str) -> ProjectInfo:
|
|
297
343
|
project_info = self.service.api.get_project(project_id)[0]
|
|
@@ -321,7 +367,15 @@ class VisualizingStatisticsMain:
|
|
|
321
367
|
project_info = self.get_project_info(project_id)
|
|
322
368
|
logger.info(f"project_title='{project_info.project_title}'")
|
|
323
369
|
|
|
324
|
-
|
|
370
|
+
# 動画プロジェクトの場合、annotation_duration_secondを生産量に含める
|
|
371
|
+
custom_production_volume = self.custom_production_volume
|
|
372
|
+
|
|
373
|
+
project_dir = ProjectDir(
|
|
374
|
+
output_project_dir,
|
|
375
|
+
self.task_completion_criteria,
|
|
376
|
+
metadata=project_info.to_dict(encode_json=True),
|
|
377
|
+
custom_production_volume_list=custom_production_volume.custom_production_volume_list if custom_production_volume is not None else None,
|
|
378
|
+
)
|
|
325
379
|
project_dir.write_project_info(project_info)
|
|
326
380
|
|
|
327
381
|
if self.actual_worktime is not None:
|
|
@@ -370,9 +424,12 @@ class VisualizingStatisticsMain:
|
|
|
370
424
|
actual_worktime=ActualWorktime(df_actual_worktime),
|
|
371
425
|
annotation_count=annotation_count,
|
|
372
426
|
input_data_count=self.input_data_count,
|
|
373
|
-
custom_production_volume=
|
|
427
|
+
custom_production_volume=custom_production_volume,
|
|
374
428
|
minimal_output=self.minimal_output,
|
|
375
429
|
output_only_text=self.output_only_text,
|
|
430
|
+
production_volume_include_labels=self.production_volume_include_labels,
|
|
431
|
+
production_volume_exclude_labels=self.production_volume_exclude_labels,
|
|
432
|
+
include_annotation_duration_seconds=(project_info.input_data_type == InputDataType.MOVIE.value),
|
|
376
433
|
)
|
|
377
434
|
|
|
378
435
|
write_obj._catch_exception(write_obj.write_user_performance)() # noqa: SLF001
|
|
@@ -483,6 +540,8 @@ class VisualizeStatistics(CommandLine):
|
|
|
483
540
|
project_id_list: list[str],
|
|
484
541
|
root_output_dir: Path,
|
|
485
542
|
parallelism: Optional[int],
|
|
543
|
+
production_volume_include_labels: Optional[list[str]] = None,
|
|
544
|
+
production_volume_exclude_labels: Optional[list[str]] = None,
|
|
486
545
|
) -> None:
|
|
487
546
|
main_obj = VisualizingStatisticsMain(
|
|
488
547
|
service=self.service,
|
|
@@ -499,6 +558,8 @@ class VisualizeStatistics(CommandLine):
|
|
|
499
558
|
minimal_output=minimal_output,
|
|
500
559
|
output_only_text=output_only_text,
|
|
501
560
|
not_download_visualization_source_files=not_download_visualization_source_files,
|
|
561
|
+
production_volume_include_labels=production_volume_include_labels,
|
|
562
|
+
production_volume_exclude_labels=production_volume_exclude_labels,
|
|
502
563
|
)
|
|
503
564
|
|
|
504
565
|
if len(project_id_list) == 1:
|
|
@@ -598,6 +659,8 @@ class VisualizeStatistics(CommandLine):
|
|
|
598
659
|
parallelism=args.parallelism,
|
|
599
660
|
# `tempfile.TemporaryDirectory`で作成したディレクトリを利用する場合は、必ずダウンロードが必要なの`False`を指定する
|
|
600
661
|
not_download_visualization_source_files=False,
|
|
662
|
+
production_volume_include_labels=get_list_from_args(args.production_volume_include_label) if args.production_volume_include_label is not None else None,
|
|
663
|
+
production_volume_exclude_labels=get_list_from_args(args.production_volume_exclude_label) if args.production_volume_exclude_label is not None else None,
|
|
601
664
|
)
|
|
602
665
|
else:
|
|
603
666
|
self.visualize_statistics(
|
|
@@ -617,6 +680,8 @@ class VisualizeStatistics(CommandLine):
|
|
|
617
680
|
root_output_dir=root_output_dir,
|
|
618
681
|
parallelism=args.parallelism,
|
|
619
682
|
not_download_visualization_source_files=args.not_download,
|
|
683
|
+
production_volume_include_labels=get_list_from_args(args.production_volume_include_label) if args.production_volume_include_label is not None else None,
|
|
684
|
+
production_volume_exclude_labels=get_list_from_args(args.production_volume_exclude_label) if args.production_volume_exclude_label is not None else None,
|
|
620
685
|
)
|
|
621
686
|
|
|
622
687
|
|
|
@@ -769,6 +834,19 @@ def parse_args(parser: argparse.ArgumentParser) -> None:
|
|
|
769
834
|
help="並列度。 ``--project_id`` に複数のproject_idを指定したときのみ有効なオプションです。指定しない場合は、逐次的に処理します。",
|
|
770
835
|
)
|
|
771
836
|
|
|
837
|
+
production_volume_label_group = parser.add_mutually_exclusive_group()
|
|
838
|
+
production_volume_label_group.add_argument(
|
|
839
|
+
"--production_volume_include_label",
|
|
840
|
+
nargs="+",
|
|
841
|
+
help="生産量('annotation_count'など)の集計対象に含めるラベル名(英語)を指定します。複数指定可能です。",
|
|
842
|
+
)
|
|
843
|
+
|
|
844
|
+
production_volume_label_group.add_argument(
|
|
845
|
+
"--production_volume_exclude_label",
|
|
846
|
+
nargs="+",
|
|
847
|
+
help="生産量('annotation_count'など)の集計対象から除外するラベル名(英語)を指定します。複数指定可能です。",
|
|
848
|
+
)
|
|
849
|
+
|
|
772
850
|
parser.set_defaults(subcommand_func=main)
|
|
773
851
|
|
|
774
852
|
|
|
@@ -146,13 +146,13 @@ class CompleteTasksMain(CommandLineWithConfirm):
|
|
|
146
146
|
if task.account_id != my_account_id:
|
|
147
147
|
_task = self.service.wrapper.change_task_operator(task.project_id, task.task_id, my_account_id, last_updated_datetime=task.updated_datetime)
|
|
148
148
|
last_updated_datetime = _task["updated_datetime"]
|
|
149
|
-
logger.debug(f"{task.task_id}
|
|
149
|
+
logger.debug(f"task_id='{task.task_id}' :: 担当者を自分自身に変更しました。")
|
|
150
150
|
|
|
151
151
|
dict_task = self.service.wrapper.change_task_status_to_working(project_id=task.project_id, task_id=task.task_id, last_updated_datetime=last_updated_datetime)
|
|
152
152
|
return Task.from_dict(dict_task)
|
|
153
153
|
|
|
154
154
|
except requests.HTTPError:
|
|
155
|
-
logger.warning(f"{task.task_id}
|
|
155
|
+
logger.warning(f"task_id='{task.task_id}' :: 担当者の変更、または作業中状態への変更に失敗しました。", exc_info=True)
|
|
156
156
|
raise
|
|
157
157
|
|
|
158
158
|
def get_unanswered_comment_list(self, task: Task, input_data_id: str) -> list[Inspection]:
|
annofabcli/task/put_tasks.py
CHANGED
|
@@ -286,7 +286,7 @@ def parse_args(parser: argparse.ArgumentParser) -> None:
|
|
|
286
286
|
"--api",
|
|
287
287
|
type=str,
|
|
288
288
|
choices=[e.value for e in ApiWithCreatingTask],
|
|
289
|
-
help="タスク作成に使うWebAPI
|
|
289
|
+
help="タスク作成に使うWebAPIを指定できます。未指定の場合は、作成するタスク数に応じて適切なWebAPIを選択します。",
|
|
290
290
|
)
|
|
291
291
|
|
|
292
292
|
parser.add_argument(
|
|
@@ -35,8 +35,11 @@ annofabcli/annotation_specs/list_label_color.py,sha256=huHBAb-LVLe-tj5ZALiBkFgZl
|
|
|
35
35
|
annofabcli/annotation_specs/put_label_color.py,sha256=L6kX6bqy80IQp8iZg4QqnRqzE8KPApgTyydPy_VG0dk,5990
|
|
36
36
|
annofabcli/annotation_specs/subcommand_annotation_specs.py,sha256=yqSjV1S3CSB0sFqelLBNkPy9RrVyGNRnSWCnaLTjUsc,2692
|
|
37
37
|
annofabcli/annotation_zip/__init__.py,sha256=wAeKgkUYvgzdGFS3iJ3h0WogWbg9i-0c4xSg-mzbBpY,64
|
|
38
|
-
annofabcli/annotation_zip/list_annotation_bounding_box_2d.py,sha256=
|
|
39
|
-
annofabcli/annotation_zip/
|
|
38
|
+
annofabcli/annotation_zip/list_annotation_bounding_box_2d.py,sha256=306qSxOXzXSU1AaaveWSToyBCCt3hGbTuWqBaS5wn44,13363
|
|
39
|
+
annofabcli/annotation_zip/list_range_annotation.py,sha256=70U3vvb-M5jxQlUlbqX-DSenp8oxXja3tj1gzq-7_DU,12282
|
|
40
|
+
annofabcli/annotation_zip/list_single_point_annotation.py,sha256=qW5i4pozl9wx2BPue9rbQX8zvdyTVRfaeQzjhOf-OUU,12575
|
|
41
|
+
annofabcli/annotation_zip/subcommand_annotation_zip.py,sha256=xU8WGXRhSh3gjOpOMD2qLMeN3rtPnE7glSsKBLIBXjE,1574
|
|
42
|
+
annofabcli/annotation_zip/validate_annotation.py,sha256=Kf1p312CINbZZTbniVAphQrcrMmr5WGQZja30kc7ewc,16645
|
|
40
43
|
annofabcli/comment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
44
|
annofabcli/comment/delete_comment.py,sha256=HZG1BOEKEbi3ISqM-2KZS5iq6aI16jDFBRLFpT-30e4,11385
|
|
42
45
|
annofabcli/comment/download_comment_json.py,sha256=YfqUnMgvLgVFV7FJPIXwirREkQ2E63fXeCaF4hfwk8c,2338
|
|
@@ -54,7 +57,7 @@ annofabcli/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
54
57
|
annofabcli/common/bokeh.py,sha256=x5-Siok3cIhq-biTOb3JG91_q--ob1m48TDgB72P1Hc,1071
|
|
55
58
|
annofabcli/common/cli.py,sha256=pmbieBx1-Eb-mlVqJAG0dJnalggczdbBly_u-qzHX84,21666
|
|
56
59
|
annofabcli/common/dataclasses.py,sha256=FRDihsB-H5P5ioVE3kfJtorsS5EbSMySlHrp8BJ3ktg,385
|
|
57
|
-
annofabcli/common/download.py,sha256=
|
|
60
|
+
annofabcli/common/download.py,sha256=4qc96boRbyo0A8DRIGohIZOpfLBMJc_fKIQlq0k_9T0,17124
|
|
58
61
|
annofabcli/common/enums.py,sha256=pnMZEk8ADK2qO2Hmujx6NxeCwvSAEDNhmgK4ajPSC9Q,1233
|
|
59
62
|
annofabcli/common/exceptions.py,sha256=trgC5eqvy7jgqOQ41pbAOC__uxy19GgrM9NAgkH_lBw,2051
|
|
60
63
|
annofabcli/common/facade.py,sha256=1d5DxC4O5yHr0gisqaqgkacY5Omn1X-L1syPnYPyiwQ,19401
|
|
@@ -145,21 +148,21 @@ annofabcli/stat_visualization/write_performance_rating_csv.py,sha256=-eC_Nv9ohrL
|
|
|
145
148
|
annofabcli/statistics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
149
|
annofabcli/statistics/histogram.py,sha256=CvzDxT2cKLSnBGSqkZE6p92PayGxYYja1YyB24M4ALU,3245
|
|
147
150
|
annofabcli/statistics/linegraph.py,sha256=0kr7jVBNMiM2ECYhv3Ry5RitElKerSl9ZKxbKzfiplI,12494
|
|
148
|
-
annofabcli/statistics/list_annotation_area.py,sha256=
|
|
151
|
+
annofabcli/statistics/list_annotation_area.py,sha256=GkzIGC7f_LLeQsSL0EkYwhpXc_v58Nc0IYnQJ2Sh1OQ,12321
|
|
149
152
|
annofabcli/statistics/list_annotation_attribute.py,sha256=lmvT3b1mVX4PRGWrBUfZafCn3c_hb_hx3WKXnHGcyyk,12754
|
|
150
|
-
annofabcli/statistics/list_annotation_attribute_filled_count.py,sha256=
|
|
151
|
-
annofabcli/statistics/list_annotation_count.py,sha256=
|
|
152
|
-
annofabcli/statistics/list_annotation_duration.py,sha256=
|
|
153
|
+
annofabcli/statistics/list_annotation_attribute_filled_count.py,sha256=HCr-CfoJTVz-w6ZYi63Y0dnvQszOwgwV0z45SB75CPg,30451
|
|
154
|
+
annofabcli/statistics/list_annotation_count.py,sha256=i99GxGeGTbHz73TDCzN3m1wO3frwg8aLkts_BDHVYmQ,54204
|
|
155
|
+
annofabcli/statistics/list_annotation_duration.py,sha256=nDV5Fw3PMYou6MspIDWIhkbFqJH3sx6PjV_8WdtyFww,32025
|
|
153
156
|
annofabcli/statistics/list_video_duration.py,sha256=11DvuWgbJoxq7hXN7HRCWFjEAK_VG9C33QTSh7bJb0Y,9195
|
|
154
157
|
annofabcli/statistics/list_worktime.py,sha256=nr--GtFY-oyFuu8M0EsUqcVxX26gjeP09LYUcdeptyk,6456
|
|
155
158
|
annofabcli/statistics/scatter.py,sha256=C3hTlm_QfGBiY4KjZ-8D_u_Rk53a9f4jszx4iNZgp9w,10945
|
|
156
159
|
annofabcli/statistics/subcommand_statistics.py,sha256=Pvd7s0vvDU9tSpAphPrv94IDhhR1p8iFH2tjdt7I7ZU,2536
|
|
157
|
-
annofabcli/statistics/summarize_task_count.py,sha256=
|
|
158
|
-
annofabcli/statistics/summarize_task_count_by_task_id_group.py,sha256=
|
|
159
|
-
annofabcli/statistics/summarize_task_count_by_user.py,sha256=
|
|
160
|
+
annofabcli/statistics/summarize_task_count.py,sha256=Beog-VKZNFQnVDcSmJYURHYGcllRFcX4xrz4cCRHGD0,10411
|
|
161
|
+
annofabcli/statistics/summarize_task_count_by_task_id_group.py,sha256=K4FFED1pza_d-s7hUB_ZyIeOTbyRWTx8J21qt4b9ki4,9085
|
|
162
|
+
annofabcli/statistics/summarize_task_count_by_user.py,sha256=KUGVUwn_KO4RSA2twAz60nX1OQE1pd5TL5gBmL1bgMA,7421
|
|
160
163
|
annofabcli/statistics/visualize_annotation_count.py,sha256=7OATuGa2okq80unuTe-X30CBVkrlMLDN5Y-Q_5mB6eI,22138
|
|
161
164
|
annofabcli/statistics/visualize_annotation_duration.py,sha256=9JH9MirhOyCmjcChFJMtfnFIV2k4sucP9PAwNKMcbtE,21022
|
|
162
|
-
annofabcli/statistics/visualize_statistics.py,sha256=
|
|
165
|
+
annofabcli/statistics/visualize_statistics.py,sha256=iwGhrYylBTsK-DT_MU-eYkFgZI0ITt9r59BbiaSbfQE,44041
|
|
163
166
|
annofabcli/statistics/visualize_video_duration.py,sha256=yY18H0-boNy4-MQWUM_xBTMzxDUQ51TrVtz8mbsB_dI,16623
|
|
164
167
|
annofabcli/statistics/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
168
|
annofabcli/statistics/visualization/filtering_query.py,sha256=kqGOa1YdQ62kTLlkiIHFiYNju4Pg9rXpsC4Cph-QjLo,4355
|
|
@@ -168,7 +171,8 @@ annofabcli/statistics/visualization/project_dir.py,sha256=-60n29ySvgsfRTbFgTOYr6
|
|
|
168
171
|
annofabcli/statistics/visualization/visualization_source_files.py,sha256=SFY7WXUtjECB8l7zP-exawocrTiZ0UI7Z5sjgq4J_g4,8641
|
|
169
172
|
annofabcli/statistics/visualization/dataframe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
173
|
annofabcli/statistics/visualization/dataframe/actual_worktime.py,sha256=7nsHlvN5cDzXIw-u_MSAZf4nlSSY56IlunSmnODXTbY,1916
|
|
171
|
-
annofabcli/statistics/visualization/dataframe/annotation_count.py,sha256=
|
|
174
|
+
annofabcli/statistics/visualization/dataframe/annotation_count.py,sha256=4b5B-RTtrETdU1lR6R0yQaMFAVxDZvxom9iBEcEDNHc,5265
|
|
175
|
+
annofabcli/statistics/visualization/dataframe/annotation_duration.py,sha256=vKxlBsDY04Q0MEUSR3Iav1GKMx1MM6BEdnFlWq2Et68,4378
|
|
172
176
|
annofabcli/statistics/visualization/dataframe/cumulative_productivity.py,sha256=Z9gxGCfgQra0M0LAq3bUhGxXnwRqZ8Gt-zIo2DPs6Nc,15800
|
|
173
177
|
annofabcli/statistics/visualization/dataframe/custom_production_volume.py,sha256=5ELLiQJ5sNKdVKmYYVeZW4nedDg1CVGxMDdF5TUUX5c,2142
|
|
174
178
|
annofabcli/statistics/visualization/dataframe/input_data_count.py,sha256=wDRFtoIWw_Gy2bPZ7LBx3eMO3LdUdjbQKS9mncXav6I,1654
|
|
@@ -193,7 +197,7 @@ annofabcli/task/cancel_acceptance.py,sha256=QG9GhGNfBXntqYTKdYjLUczjD4p_ATkPc_xY
|
|
|
193
197
|
annofabcli/task/change_operator.py,sha256=q6pMd1SdsTRgMHS0705dnosTSHprTpYgXtNd0rli2Zg,11793
|
|
194
198
|
annofabcli/task/change_status_to_break.py,sha256=hwdFTFW-zV0VxuinoBB5n6mvHJ7g9ChjrSOXZcNk88w,8621
|
|
195
199
|
annofabcli/task/change_status_to_on_hold.py,sha256=vWRyk6IK3HcgTWDIbbhXzsrtuoa7OlXCf8CvUpFp_Uw,12981
|
|
196
|
-
annofabcli/task/complete_tasks.py,sha256=
|
|
200
|
+
annofabcli/task/complete_tasks.py,sha256=la7aoVhwiqvYZqe9igVzgUZAIVsXL28xdGlrUnuXk1o,25169
|
|
197
201
|
annofabcli/task/copy_tasks.py,sha256=EcaCaSzqddlSKSUYqDOD53-r1GFpIl38KL3FriSfMeI,8735
|
|
198
202
|
annofabcli/task/delete_metadata_key_of_task.py,sha256=Cjqe3fWKeRzVxxlrGyt3TS-x1riD55LnNXLIS9JPoTw,8029
|
|
199
203
|
annofabcli/task/delete_tasks.py,sha256=7T5eNCMW06ABekNGLwhTitDK5qn0tiPKrEXyJXyQNvs,13098
|
|
@@ -202,7 +206,7 @@ annofabcli/task/list_all_tasks.py,sha256=FpFzosCZs2EZNSQMHzWse4z_zjZeiVF5BFmbwb9
|
|
|
202
206
|
annofabcli/task/list_all_tasks_added_task_history.py,sha256=fkdiuo64iS7xxvIfGKzSiUPPEMiCVnJjjcAtMxe2Ngs,9551
|
|
203
207
|
annofabcli/task/list_tasks.py,sha256=cmfqbP2Sr1dlpvpJLJscKq31BUdXVaajr_agiecKWXg,10051
|
|
204
208
|
annofabcli/task/list_tasks_added_task_history.py,sha256=JI3Rxn9MwXN07Cu2wDfaIXAzm3MlNm1kIh1SZHbxZr4,22488
|
|
205
|
-
annofabcli/task/put_tasks.py,sha256=
|
|
209
|
+
annofabcli/task/put_tasks.py,sha256=tqgGtaYkAwTznLhcvl9eZNS2U6eqsoqSbL67jBqyfJk,13653
|
|
206
210
|
annofabcli/task/put_tasks_by_count.py,sha256=kIjvWtgZ53Smcm8N-raZedQCubx1TWoQT-BYyioYDrA,5999
|
|
207
211
|
annofabcli/task/reject_tasks.py,sha256=2mRxIsP63N2xcVXQ0xeFqF0VkuUQP6C_bsFEqG-qNf0,22027
|
|
208
212
|
annofabcli/task/subcommand_task.py,sha256=L_5Dwe58eblrtOrUYxjJAvkSmu6savRUxIqGjsFq-R4,2436
|
|
@@ -217,8 +221,8 @@ annofabcli/task_history_event/download_task_history_event_json.py,sha256=hQLVbQ0
|
|
|
217
221
|
annofabcli/task_history_event/list_all_task_history_event.py,sha256=EeKMyPUxGwYCFtWQHHW954ZserGm8lUqrwNnV1iX9X4,6830
|
|
218
222
|
annofabcli/task_history_event/list_worktime.py,sha256=Y7Pu5DP7scPf7HPt6CTiTvB1_5_Nfi1bStUIaCpkhII,15507
|
|
219
223
|
annofabcli/task_history_event/subcommand_task_history_event.py,sha256=mJVJoT4RXk4HWnY7-Nrsl4If-gtaIIEXd2z7eFZwM2I,1260
|
|
220
|
-
annofabcli-1.
|
|
221
|
-
annofabcli-1.
|
|
222
|
-
annofabcli-1.
|
|
223
|
-
annofabcli-1.
|
|
224
|
-
annofabcli-1.
|
|
224
|
+
annofabcli-1.111.0.dist-info/METADATA,sha256=8icfwwpFiUk3CLmu_RvCrllfkQnP93ITWhkKwEY_adg,5134
|
|
225
|
+
annofabcli-1.111.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
226
|
+
annofabcli-1.111.0.dist-info/entry_points.txt,sha256=C2uSUc-kkLJpoK_mDL5FEMAdorLEMPfwSf8VBMYnIFM,56
|
|
227
|
+
annofabcli-1.111.0.dist-info/licenses/LICENSE,sha256=pcqWYfxFtxBzhvKp3x9MXNM4xciGb2eFewaRhXUNHlo,1081
|
|
228
|
+
annofabcli-1.111.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|