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.
@@ -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(self.visualize_source_files.annotation_zip_path, project_id=self.project_id)
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=self.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
- project_dir = ProjectDir(output_project_dir, self.task_completion_criteria, metadata=project_info.to_dict(encode_json=True))
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=self.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}: 担当者の変更、または作業中状態への変更に失敗しました。", exc_info=True)
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]:
@@ -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を指定できます。 ``--csv`` or ``--json`` を指定したときのみ有効なオプションです。\n未指定の場合は、作成するタスク数に応じて、適切なWebAPIを選択します。\n",
289
+ help="タスク作成に使うWebAPIを指定できます。未指定の場合は、作成するタスク数に応じて適切なWebAPIを選択します。",
290
290
  )
291
291
 
292
292
  parser.add_argument(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: annofabcli
3
- Version: 1.109.0
3
+ Version: 1.111.0
4
4
  Summary: Utility Command Line Interface for AnnoFab
5
5
  Author: Kurusugawa Computer Inc.
6
6
  License: MIT
@@ -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=fPpc1Ekk-9f3_yKSn0PD7l6JPlheOExFtbCY3_n89iY,12520
39
- annofabcli/annotation_zip/subcommand_annotation_zip.py,sha256=Cx07h2hJW6o9arkAsOnTsNmaY3G20PTkGlB6jzldx6Q,1146
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=b3e5tVn1dmM1BMti67WwGzDCRH7hYJQEgk0xxkkuMIw,14003
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=ChBWz-LcGkdNV7J_qg4JeE7b7WdKyNgyfRjoW3IJfvw,12390
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=UF8wB-kfUnHCIPykb2Z2slyEcp9aHrzcbFbOs_3Z8-A,29341
151
- annofabcli/statistics/list_annotation_count.py,sha256=4uTRR63Db-WDGRQt3AC8mPaRfFgbG5d27A036GNG3D0,53151
152
- annofabcli/statistics/list_annotation_duration.py,sha256=WxHfzF4tYkveIdkaWoJZ6x7ddBMWkfz1YM_vxMub3jY,32165
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=fMVNxUDs1KdgRXsg0yaEKw5iJzn3_U39rUN6BbkP720,9557
158
- annofabcli/statistics/summarize_task_count_by_task_id_group.py,sha256=eRPl89Oh7_ViDW5FA1nt56TdcCMWMjrd9LhE6lLSbeA,8533
159
- annofabcli/statistics/summarize_task_count_by_user.py,sha256=rwhQwO6g2No9AqLEAbAfnlg_6CkgB3CRkZiaNnXCL0I,6857
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=YiT-KCCFQNF-v56hA8WjX37b_CGjMk2Ei-NbW7aHG-k,38384
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=gv9iFpSLu_cB63G3Z9dGImT9jr_Q6U_mrmG8VXsxJnk,3940
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=ouTxqw5_MxLhwCkp_EcBThqA7MhHIZKQsfXxhRJut28,25145
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=HADm-sP8zs523MlDThlwrGIVIEtR4Md2KlpJbWhCCTk,13745
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.109.0.dist-info/METADATA,sha256=pbrL21qmMSLyM9m8jkG-ACFsgHGr9DKBVub588V7jP0,5134
221
- annofabcli-1.109.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
222
- annofabcli-1.109.0.dist-info/entry_points.txt,sha256=C2uSUc-kkLJpoK_mDL5FEMAdorLEMPfwSf8VBMYnIFM,56
223
- annofabcli-1.109.0.dist-info/licenses/LICENSE,sha256=pcqWYfxFtxBzhvKp3x9MXNM4xciGb2eFewaRhXUNHlo,1081
224
- annofabcli-1.109.0.dist-info/RECORD,,
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,,