annofabcli 1.109.0__py3-none-any.whl → 1.110.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/subcommand_annotation_zip.py +4 -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-1.109.0.dist-info → annofabcli-1.110.0.dist-info}/METADATA +1 -1
- {annofabcli-1.109.0.dist-info → annofabcli-1.110.0.dist-info}/RECORD +21 -18
- {annofabcli-1.109.0.dist-info → annofabcli-1.110.0.dist-info}/WHEEL +0 -0
- {annofabcli-1.109.0.dist-info → annofabcli-1.110.0.dist-info}/entry_points.txt +0 -0
- {annofabcli-1.109.0.dist-info → annofabcli-1.110.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]:
|
|
@@ -35,8 +35,10 @@ 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/subcommand_annotation_zip.py,sha256=SBpdjNhp4s-u4DBjpl5_OR91GbW5hUAi3kt5dhNbyA4,1397
|
|
41
|
+
annofabcli/annotation_zip/validate_annotation.py,sha256=Kf1p312CINbZZTbniVAphQrcrMmr5WGQZja30kc7ewc,16645
|
|
40
42
|
annofabcli/comment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
43
|
annofabcli/comment/delete_comment.py,sha256=HZG1BOEKEbi3ISqM-2KZS5iq6aI16jDFBRLFpT-30e4,11385
|
|
42
44
|
annofabcli/comment/download_comment_json.py,sha256=YfqUnMgvLgVFV7FJPIXwirREkQ2E63fXeCaF4hfwk8c,2338
|
|
@@ -54,7 +56,7 @@ annofabcli/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
54
56
|
annofabcli/common/bokeh.py,sha256=x5-Siok3cIhq-biTOb3JG91_q--ob1m48TDgB72P1Hc,1071
|
|
55
57
|
annofabcli/common/cli.py,sha256=pmbieBx1-Eb-mlVqJAG0dJnalggczdbBly_u-qzHX84,21666
|
|
56
58
|
annofabcli/common/dataclasses.py,sha256=FRDihsB-H5P5ioVE3kfJtorsS5EbSMySlHrp8BJ3ktg,385
|
|
57
|
-
annofabcli/common/download.py,sha256=
|
|
59
|
+
annofabcli/common/download.py,sha256=4qc96boRbyo0A8DRIGohIZOpfLBMJc_fKIQlq0k_9T0,17124
|
|
58
60
|
annofabcli/common/enums.py,sha256=pnMZEk8ADK2qO2Hmujx6NxeCwvSAEDNhmgK4ajPSC9Q,1233
|
|
59
61
|
annofabcli/common/exceptions.py,sha256=trgC5eqvy7jgqOQ41pbAOC__uxy19GgrM9NAgkH_lBw,2051
|
|
60
62
|
annofabcli/common/facade.py,sha256=1d5DxC4O5yHr0gisqaqgkacY5Omn1X-L1syPnYPyiwQ,19401
|
|
@@ -145,21 +147,21 @@ annofabcli/stat_visualization/write_performance_rating_csv.py,sha256=-eC_Nv9ohrL
|
|
|
145
147
|
annofabcli/statistics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
148
|
annofabcli/statistics/histogram.py,sha256=CvzDxT2cKLSnBGSqkZE6p92PayGxYYja1YyB24M4ALU,3245
|
|
147
149
|
annofabcli/statistics/linegraph.py,sha256=0kr7jVBNMiM2ECYhv3Ry5RitElKerSl9ZKxbKzfiplI,12494
|
|
148
|
-
annofabcli/statistics/list_annotation_area.py,sha256=
|
|
150
|
+
annofabcli/statistics/list_annotation_area.py,sha256=GkzIGC7f_LLeQsSL0EkYwhpXc_v58Nc0IYnQJ2Sh1OQ,12321
|
|
149
151
|
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=
|
|
152
|
+
annofabcli/statistics/list_annotation_attribute_filled_count.py,sha256=HCr-CfoJTVz-w6ZYi63Y0dnvQszOwgwV0z45SB75CPg,30451
|
|
153
|
+
annofabcli/statistics/list_annotation_count.py,sha256=i99GxGeGTbHz73TDCzN3m1wO3frwg8aLkts_BDHVYmQ,54204
|
|
154
|
+
annofabcli/statistics/list_annotation_duration.py,sha256=nDV5Fw3PMYou6MspIDWIhkbFqJH3sx6PjV_8WdtyFww,32025
|
|
153
155
|
annofabcli/statistics/list_video_duration.py,sha256=11DvuWgbJoxq7hXN7HRCWFjEAK_VG9C33QTSh7bJb0Y,9195
|
|
154
156
|
annofabcli/statistics/list_worktime.py,sha256=nr--GtFY-oyFuu8M0EsUqcVxX26gjeP09LYUcdeptyk,6456
|
|
155
157
|
annofabcli/statistics/scatter.py,sha256=C3hTlm_QfGBiY4KjZ-8D_u_Rk53a9f4jszx4iNZgp9w,10945
|
|
156
158
|
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=
|
|
159
|
+
annofabcli/statistics/summarize_task_count.py,sha256=Beog-VKZNFQnVDcSmJYURHYGcllRFcX4xrz4cCRHGD0,10411
|
|
160
|
+
annofabcli/statistics/summarize_task_count_by_task_id_group.py,sha256=K4FFED1pza_d-s7hUB_ZyIeOTbyRWTx8J21qt4b9ki4,9085
|
|
161
|
+
annofabcli/statistics/summarize_task_count_by_user.py,sha256=KUGVUwn_KO4RSA2twAz60nX1OQE1pd5TL5gBmL1bgMA,7421
|
|
160
162
|
annofabcli/statistics/visualize_annotation_count.py,sha256=7OATuGa2okq80unuTe-X30CBVkrlMLDN5Y-Q_5mB6eI,22138
|
|
161
163
|
annofabcli/statistics/visualize_annotation_duration.py,sha256=9JH9MirhOyCmjcChFJMtfnFIV2k4sucP9PAwNKMcbtE,21022
|
|
162
|
-
annofabcli/statistics/visualize_statistics.py,sha256=
|
|
164
|
+
annofabcli/statistics/visualize_statistics.py,sha256=iwGhrYylBTsK-DT_MU-eYkFgZI0ITt9r59BbiaSbfQE,44041
|
|
163
165
|
annofabcli/statistics/visualize_video_duration.py,sha256=yY18H0-boNy4-MQWUM_xBTMzxDUQ51TrVtz8mbsB_dI,16623
|
|
164
166
|
annofabcli/statistics/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
167
|
annofabcli/statistics/visualization/filtering_query.py,sha256=kqGOa1YdQ62kTLlkiIHFiYNju4Pg9rXpsC4Cph-QjLo,4355
|
|
@@ -168,7 +170,8 @@ annofabcli/statistics/visualization/project_dir.py,sha256=-60n29ySvgsfRTbFgTOYr6
|
|
|
168
170
|
annofabcli/statistics/visualization/visualization_source_files.py,sha256=SFY7WXUtjECB8l7zP-exawocrTiZ0UI7Z5sjgq4J_g4,8641
|
|
169
171
|
annofabcli/statistics/visualization/dataframe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
172
|
annofabcli/statistics/visualization/dataframe/actual_worktime.py,sha256=7nsHlvN5cDzXIw-u_MSAZf4nlSSY56IlunSmnODXTbY,1916
|
|
171
|
-
annofabcli/statistics/visualization/dataframe/annotation_count.py,sha256=
|
|
173
|
+
annofabcli/statistics/visualization/dataframe/annotation_count.py,sha256=4b5B-RTtrETdU1lR6R0yQaMFAVxDZvxom9iBEcEDNHc,5265
|
|
174
|
+
annofabcli/statistics/visualization/dataframe/annotation_duration.py,sha256=vKxlBsDY04Q0MEUSR3Iav1GKMx1MM6BEdnFlWq2Et68,4378
|
|
172
175
|
annofabcli/statistics/visualization/dataframe/cumulative_productivity.py,sha256=Z9gxGCfgQra0M0LAq3bUhGxXnwRqZ8Gt-zIo2DPs6Nc,15800
|
|
173
176
|
annofabcli/statistics/visualization/dataframe/custom_production_volume.py,sha256=5ELLiQJ5sNKdVKmYYVeZW4nedDg1CVGxMDdF5TUUX5c,2142
|
|
174
177
|
annofabcli/statistics/visualization/dataframe/input_data_count.py,sha256=wDRFtoIWw_Gy2bPZ7LBx3eMO3LdUdjbQKS9mncXav6I,1654
|
|
@@ -193,7 +196,7 @@ annofabcli/task/cancel_acceptance.py,sha256=QG9GhGNfBXntqYTKdYjLUczjD4p_ATkPc_xY
|
|
|
193
196
|
annofabcli/task/change_operator.py,sha256=q6pMd1SdsTRgMHS0705dnosTSHprTpYgXtNd0rli2Zg,11793
|
|
194
197
|
annofabcli/task/change_status_to_break.py,sha256=hwdFTFW-zV0VxuinoBB5n6mvHJ7g9ChjrSOXZcNk88w,8621
|
|
195
198
|
annofabcli/task/change_status_to_on_hold.py,sha256=vWRyk6IK3HcgTWDIbbhXzsrtuoa7OlXCf8CvUpFp_Uw,12981
|
|
196
|
-
annofabcli/task/complete_tasks.py,sha256=
|
|
199
|
+
annofabcli/task/complete_tasks.py,sha256=la7aoVhwiqvYZqe9igVzgUZAIVsXL28xdGlrUnuXk1o,25169
|
|
197
200
|
annofabcli/task/copy_tasks.py,sha256=EcaCaSzqddlSKSUYqDOD53-r1GFpIl38KL3FriSfMeI,8735
|
|
198
201
|
annofabcli/task/delete_metadata_key_of_task.py,sha256=Cjqe3fWKeRzVxxlrGyt3TS-x1riD55LnNXLIS9JPoTw,8029
|
|
199
202
|
annofabcli/task/delete_tasks.py,sha256=7T5eNCMW06ABekNGLwhTitDK5qn0tiPKrEXyJXyQNvs,13098
|
|
@@ -217,8 +220,8 @@ annofabcli/task_history_event/download_task_history_event_json.py,sha256=hQLVbQ0
|
|
|
217
220
|
annofabcli/task_history_event/list_all_task_history_event.py,sha256=EeKMyPUxGwYCFtWQHHW954ZserGm8lUqrwNnV1iX9X4,6830
|
|
218
221
|
annofabcli/task_history_event/list_worktime.py,sha256=Y7Pu5DP7scPf7HPt6CTiTvB1_5_Nfi1bStUIaCpkhII,15507
|
|
219
222
|
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.
|
|
223
|
+
annofabcli-1.110.0.dist-info/METADATA,sha256=IkiHLkw9nFBKWbtVvoy_aedwGZ7Xl0d-gFTF4xDNnSE,5134
|
|
224
|
+
annofabcli-1.110.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
225
|
+
annofabcli-1.110.0.dist-info/entry_points.txt,sha256=C2uSUc-kkLJpoK_mDL5FEMAdorLEMPfwSf8VBMYnIFM,56
|
|
226
|
+
annofabcli-1.110.0.dist-info/licenses/LICENSE,sha256=pcqWYfxFtxBzhvKp3x9MXNM4xciGb2eFewaRhXUNHlo,1081
|
|
227
|
+
annofabcli-1.110.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|