12
12
import annofabapi .utils
13
13
from annofabapi import AnnofabApi
14
14
from annofabapi .exceptions import AnnofabApiException
15
- from annofabapi .models import (AnnotationSpecs , InputData , Inspection , Instruction , JobInfo , JobType , MyOrganization ,
16
- OrganizationMember , Project , ProjectMember , SupplementaryData , Task , InspectionStatus )
15
+ from annofabapi .models import (AnnotationSpecs , InputData , Inspection , InspectionStatus , Instruction , JobInfo , JobType ,
16
+ MyOrganization , Organization , OrganizationMember , Project , ProjectMember ,
17
+ SupplementaryData , Task )
18
+ from annofabapi .utils import allow_404_error
17
19
18
20
logger = logging .getLogger (__name__ )
19
21
@@ -103,7 +105,7 @@ def _get_all_objects(func_get_list: Callable, limit: int, **kwargs_for_func_get_
103
105
return all_objects
104
106
105
107
#########################################
106
- # Public Method : AfAnnotationApi
108
+ # Public Method : Annotation
107
109
#########################################
108
110
def download_annotation_archive (self , project_id : str , dest_path : str , v2 : bool = False ) -> str :
109
111
"""
@@ -165,7 +167,7 @@ def get_all_annotation_list(self, project_id: str,
165
167
query_params = query_params )
166
168
167
169
#########################################
168
- # Public Method : AfAnnotationSpecsApi
170
+ # Public Method : AnnotationSpecs
169
171
#########################################
170
172
def copy_annotation_specs (self , src_project_id : str , dest_project_id : str ,
171
173
comment : Optional [str ] = None ) -> AnnotationSpecs :
@@ -196,8 +198,23 @@ def copy_annotation_specs(self, src_project_id: str, dest_project_id: str,
196
198
return self .api .put_annotation_specs (dest_project_id , request_body = request_body )[0 ]
197
199
198
200
#########################################
199
- # Public Method : AfInputApi
201
+ # Public Method : Input
200
202
#########################################
203
+ @allow_404_error
204
+ def get_input_data_or_none (self , project_id : str , input_data_id : str ) -> Optional [InputData ]:
205
+ """
206
+ 入力データを取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
207
+
208
+ Args:
209
+ project_id:
210
+ input_data_id:
211
+
212
+ Returns:
213
+ 入力データ
214
+ """
215
+ input_data , _ = self .api .get_input_data (project_id , input_data_id )
216
+ return input_data
217
+
201
218
def get_all_input_data_list (self , project_id : str ,
202
219
query_params : Optional [Dict [str , Any ]] = None ) -> List [InputData ]:
203
220
"""
@@ -277,7 +294,7 @@ def put_input_data_from_file(self, project_id: str, input_data_id: str, file_pat
277
294
return self .api .put_input_data (project_id , input_data_id , request_body = copied_request_body )[0 ]
278
295
279
296
#########################################
280
- # Public Method : AfStatisticsApi
297
+ # Public Method : Statistics
281
298
#########################################
282
299
def get_worktime_statistics (self , project_id : str ) -> Dict [str , Any ]:
283
300
"""
@@ -296,7 +313,7 @@ def get_worktime_statistics(self, project_id: str) -> Dict[str, Any]:
296
313
return requests .get (url ).json ()
297
314
298
315
#########################################
299
- # Public Method : AfSupplementaryApi
316
+ # Public Method : Supplementary
300
317
#########################################
301
318
def put_supplementary_data_from_file (self , project_id , input_data_id : str , supplementary_data_id : str ,
302
319
file_path : str , request_body : Dict [str , Any ],
@@ -344,7 +361,7 @@ def put_supplementary_data_from_file(self, project_id, input_data_id: str, suppl
344
361
request_body = copied_request_body )[0 ]
345
362
346
363
#########################################
347
- # Public Method : AfInspection
364
+ # Public Method : Inspection
348
365
#########################################
349
366
def update_status_of_inspections (self , project_id : str , task_id : str , input_data_id : str ,
350
367
filter_inspection : Callable [[Inspection ], bool ],
@@ -386,7 +403,7 @@ def search_updated_inspections(arg_inspection: Inspection) -> bool:
386
403
return content
387
404
388
405
#########################################
389
- # Public Method : AfMyApi
406
+ # Public Method : My
390
407
#########################################
391
408
def get_all_my_organizations (self ) -> List [MyOrganization ]:
392
409
"""
@@ -398,8 +415,22 @@ def get_all_my_organizations(self) -> List[MyOrganization]:
398
415
return self ._get_all_objects (self .api .get_my_organizations , limit = 200 )
399
416
400
417
#########################################
401
- # Public Method : AfOrganizationApi
418
+ # Public Method : Organization
402
419
#########################################
420
+ @allow_404_error
421
+ def get_organization_or_none (self , organization_name : str ) -> Optional [Organization ]:
422
+ """
423
+ 組織情報を取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
424
+
425
+ Args:
426
+ organization_name: 組織名
427
+
428
+ Returns:
429
+ 組織情報
430
+ """
431
+ content , _ = self .api .get_organization (organization_name )
432
+ return content
433
+
403
434
def get_all_projects_of_organization (self , organization_name : str ,
404
435
query_params : Optional [Dict [str , Any ]] = None ) -> List [Project ]:
405
436
"""
@@ -416,8 +447,23 @@ def get_all_projects_of_organization(self, organization_name: str,
416
447
organization_name = organization_name , query_params = query_params )
417
448
418
449
#########################################
419
- # Public Method : AfOrganizationMemberApi
450
+ # Public Method : OrganizationMember
420
451
#########################################
452
+ @allow_404_error
453
+ def get_organization_member_or_none (self , organization_name : str , user_id : str ) -> Optional [OrganizationMember ]:
454
+ """
455
+ 組織メンバを取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
456
+
457
+ Args:
458
+ organization_name: 組織名
459
+ user_id:
460
+
461
+ Returns:
462
+ 組織メンバ
463
+ """
464
+ content , _ = self .api .get_organization_member (organization_name , user_id )
465
+ return content
466
+
421
467
def get_all_organization_members (self , organization_name : str ) -> List [OrganizationMember ]:
422
468
"""
423
469
すべての組織メンバ一覧を取得する
@@ -434,8 +480,22 @@ def get_all_organization_members(self, organization_name: str) -> List[Organizat
434
480
return content ["list" ]
435
481
436
482
#########################################
437
- # Public Method : AfProjectApi
483
+ # Public Method : Project
438
484
#########################################
485
+ @allow_404_error
486
+ def get_project_or_none (self , project_id : str ) -> Optional [Project ]:
487
+ """
488
+ プロジェクトを取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
489
+
490
+ Args:
491
+ project_id:
492
+
493
+ Returns:
494
+ プロジェクト
495
+ """
496
+ content , _ = self .api .get_project (project_id )
497
+ return content
498
+
439
499
def download_project_tasks_url (self , project_id : str , dest_path : str ) -> str :
440
500
"""
441
501
プロジェクトのタスク全件ファイルをダウンロードする。
@@ -494,8 +554,23 @@ def download_project_task_history_events_url(self, project_id: str, dest_path: s
494
554
return url
495
555
496
556
#########################################
497
- # Public Method : AfProjectMemberApi
557
+ # Public Method : ProjectMember
498
558
#########################################
559
+ @allow_404_error
560
+ def get_project_member_or_none (self , project_id : str , user_id : str ) -> Optional [ProjectMember ]:
561
+ """
562
+ プロジェクトメンバを取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
563
+
564
+ Args:
565
+ project_id:
566
+ user_id:
567
+
568
+ Returns:
569
+ プロジェクトメンバ
570
+ """
571
+ content , _ = self .api .get_project_member (project_id , user_id )
572
+ return content
573
+
499
574
def get_all_project_members (self , project_id : str ,
500
575
query_params : Optional [Dict [str , Any ]] = None ) -> List [ProjectMember ]:
501
576
"""
@@ -640,7 +715,7 @@ def to_inactive(arg_member):
640
715
return self .put_project_members (dest_project_id , src_project_members )
641
716
642
717
#########################################
643
- # Public Method : AfTaskApi
718
+ # Public Method : Task
644
719
#########################################
645
720
def initiate_tasks_generation_by_csv (self , project_id : str , csvfile_path : str ,
646
721
task_id_prefix : str ) -> Dict [str , Any ]:
@@ -669,6 +744,21 @@ def initiate_tasks_generation_by_csv(self, project_id: str, csvfile_path: str,
669
744
}
670
745
return self .api .initiate_tasks_generation (project_id , request_body = request_body )[0 ]
671
746
747
+ @allow_404_error
748
+ def get_task_or_none (self , project_id : str , task_id : str ) -> Optional [Task ]:
749
+ """
750
+ タスクを取得する。存在しない場合(HTTP 404 Error)はNoneを返す。
751
+
752
+ Args:
753
+ project_id:
754
+ task_id:
755
+
756
+ Returns:
757
+ タスク
758
+ """
759
+ content , _ = self .api .get_task (project_id , task_id )
760
+ return content
761
+
672
762
def get_all_tasks (self , project_id : str , query_params : Optional [Dict [str , Any ]] = None ) -> List [Task ]:
673
763
"""
674
764
すべてのタスクを取得する。
0 commit comments