11
11
import warnings
12
12
from dataclasses import dataclass
13
13
from pathlib import Path
14
- from typing import Any , Callable , Dict , List , Optional , Union
14
+ from typing import Any , Callable , Dict , List , Optional
15
15
16
16
import requests
17
17
23
23
AdditionalDataDefinitionV1 ,
24
24
AnnotationDataHoldingType ,
25
25
AnnotationDetail ,
26
- AnnotationSpecsV1 ,
27
26
FullAnnotationData ,
28
27
InputData ,
29
28
Inspection ,
30
29
InspectionStatus ,
31
30
Instruction ,
32
31
JobStatus ,
33
- JobType ,
34
32
LabelV1 ,
35
33
MyOrganization ,
36
34
Organization ,
@@ -669,39 +667,6 @@ def put_annotation_for_simple_annotation_json(
669
667
#########################################
670
668
# Public Method : AnnotationSpecs
671
669
#########################################
672
- def copy_annotation_specs (
673
- self , src_project_id : str , dest_project_id : str , comment : Optional [str ] = None
674
- ) -> AnnotationSpecsV1 :
675
- """
676
- アノテーション仕様を、別のプロジェクトにコピーする。
677
-
678
- .. deprecated:: 2021-09-01
679
-
680
-
681
- Note:
682
- 誤って実行しないようにすること
683
-
684
- Args:
685
- src_project_id: コピー元のproject_id
686
- dest_project_id: コピー先のproject_id
687
- comment: アノテーション仕様を保存するときのコメント。Noneならば、コピーした旨を記載する。
688
-
689
- Returns:
690
- put_annotation_specsのContent
691
- """
692
- warnings .warn ("2021-09-01以降に削除します。" , FutureWarning )
693
-
694
- src_annotation_specs = self .api .get_annotation_specs (src_project_id )[0 ]
695
-
696
- if comment is None :
697
- comment = f"Copied the annotation specification of project { src_project_id } on { str_now ()} "
698
-
699
- request_body = {
700
- "labels" : src_annotation_specs ["labels" ],
701
- "inspection_phrases" : src_annotation_specs ["inspection_phrases" ],
702
- "comment" : comment ,
703
- }
704
- return self .api .put_annotation_specs (dest_project_id , request_body = request_body )[0 ]
705
670
706
671
@staticmethod
707
672
def __get_label_name_en (label : Dict [str , Any ]) -> str :
@@ -1753,9 +1718,7 @@ def upload_data_as_instruction_image(self, project_id: str, image_id: str, data:
1753
1718
#########################################
1754
1719
# Public Method : Job
1755
1720
#########################################
1756
- def delete_all_succeeded_job (
1757
- self , project_id : str , job_type : Union [ProjectJobType , JobType ]
1758
- ) -> List [ProjectJobInfo ]:
1721
+ def delete_all_succeeded_job (self , project_id : str , job_type : ProjectJobType ) -> List [ProjectJobInfo ]:
1759
1722
"""
1760
1723
成功したジョブをすべて削除する
1761
1724
@@ -1797,7 +1760,7 @@ def get_all_project_job(self, project_id: str, query_params: Dict[str, Any] = No
1797
1760
all_jobs .extend (r ["list" ])
1798
1761
return all_jobs
1799
1762
1800
- def job_in_progress (self , project_id : str , job_type : Union [ ProjectJobType , JobType ] ) -> bool :
1763
+ def job_in_progress (self , project_id : str , job_type : ProjectJobType ) -> bool :
1801
1764
"""
1802
1765
ジョブが進行中かどうか
1803
1766
@@ -1819,7 +1782,7 @@ def job_in_progress(self, project_id: str, job_type: Union[ProjectJobType, JobTy
1819
1782
def wait_for_completion (
1820
1783
self ,
1821
1784
project_id : str ,
1822
- job_type : Union [ ProjectJobType , JobType ] ,
1785
+ job_type : ProjectJobType ,
1823
1786
job_access_interval : int = 60 ,
1824
1787
max_job_access : int = 10 ,
1825
1788
) -> bool :
@@ -1849,7 +1812,7 @@ def wait_for_completion(
1849
1812
def wait_until_job_finished (
1850
1813
self ,
1851
1814
project_id : str ,
1852
- job_type : Union [ ProjectJobType , JobType ] ,
1815
+ job_type : ProjectJobType ,
1853
1816
job_id : Optional [str ] = None ,
1854
1817
job_access_interval : int = 60 ,
1855
1818
max_job_access : int = 360 ,
@@ -1927,14 +1890,14 @@ def get_job_from_job_id(arg_job_id: str) -> Optional[ProjectJobInfo]:
1927
1890
)
1928
1891
return JobStatus .PROGRESS
1929
1892
1930
- async def _job_in_progress_async (self , project_id : str , job_type : Union [ ProjectJobType , JobType ] ) -> bool :
1893
+ async def _job_in_progress_async (self , project_id : str , job_type : ProjectJobType ) -> bool :
1931
1894
loop = asyncio .get_event_loop ()
1932
1895
return await loop .run_in_executor (None , self .job_in_progress , project_id , job_type )
1933
1896
1934
1897
async def _wait_until_job_finished_async (
1935
1898
self ,
1936
1899
project_id : str ,
1937
- job_type : Union [ ProjectJobType , JobType ] ,
1900
+ job_type : ProjectJobType ,
1938
1901
job_id : Optional [str ],
1939
1902
job_access_interval : int ,
1940
1903
max_job_access : int ,
@@ -1944,7 +1907,7 @@ async def _wait_until_job_finished_async(
1944
1907
None , self .wait_until_job_finished , project_id , job_type , job_id , job_access_interval , max_job_access
1945
1908
)
1946
1909
1947
- def can_execute_job (self , project_id : str , job_type : Union [ ProjectJobType , JobType ] ) -> bool :
1910
+ def can_execute_job (self , project_id : str , job_type : ProjectJobType ) -> bool :
1948
1911
"""
1949
1912
ジョブが実行できる状態か否か。他のジョブが実行中で同時に実行できない場合はFalseを返す。
1950
1913
@@ -1955,19 +1918,14 @@ def can_execute_job(self, project_id: str, job_type: Union[ProjectJobType, JobTy
1955
1918
Returns:
1956
1919
ジョブが実行できる状態か否か
1957
1920
"""
1958
- # TODO: JobTypeが削除されたら、この処理も削除する
1959
- new_job_type : ProjectJobType = ProjectJobType (job_type .value ) if isinstance (job_type , JobType ) else job_type
1960
-
1961
- job_type_list = _JOB_CONCURRENCY_LIMIT [new_job_type ]
1921
+ job_type_list = _JOB_CONCURRENCY_LIMIT [job_type ]
1962
1922
1963
1923
# tokenがない場合、ログインが複数回発生するので、事前にログインしておく
1964
1924
if self .api .token_dict is None :
1965
1925
self .api .login ()
1966
1926
1967
1927
# 複数のジョブに対して進行中かどうかを確認する
1968
- gather = asyncio .gather (
1969
- * [self ._job_in_progress_async (project_id , new_job_type ) for new_job_type in job_type_list ]
1970
- )
1928
+ gather = asyncio .gather (* [self ._job_in_progress_async (project_id , job_type ) for job_type in job_type_list ])
1971
1929
loop = asyncio .get_event_loop ()
1972
1930
result = loop .run_until_complete (gather )
1973
1931
@@ -1976,7 +1934,7 @@ def can_execute_job(self, project_id: str, job_type: Union[ProjectJobType, JobTy
1976
1934
def wait_until_job_is_executable (
1977
1935
self ,
1978
1936
project_id : str ,
1979
- job_type : Union [ ProjectJobType , JobType ] ,
1937
+ job_type : ProjectJobType ,
1980
1938
job_access_interval : int = 60 ,
1981
1939
max_job_access : int = 360 ,
1982
1940
) -> bool :
@@ -1993,10 +1951,8 @@ def wait_until_job_is_executable(
1993
1951
指定した時間(アクセス頻度と回数)待った後、ジョブが実行可能な状態かどうか。進行中のジョブが存在する場合は、ジョブが実行不可能。
1994
1952
1995
1953
"""
1996
- # TODO: JobTypeが削除されたら、この処理も削除する
1997
- new_job_type : ProjectJobType = ProjectJobType (job_type .value ) if isinstance (job_type , JobType ) else job_type
1998
1954
1999
- job_type_list = _JOB_CONCURRENCY_LIMIT [new_job_type ]
1955
+ job_type_list = _JOB_CONCURRENCY_LIMIT [job_type ]
2000
1956
# tokenがない場合、ログインが複数回発生するので、事前にログインしておく
2001
1957
if self .api .token_dict is None :
2002
1958
self .api .login ()
0 commit comments