Skip to content

Commit a13ef42

Browse files
authored
Merge pull request #105 from kurusugawa-computer/add-job-in-progress
ジョブが進行中かどうかを表すメソッド`job_in_progress`メソッドを追加する
2 parents 4714eab + 5fc4e93 commit a13ef42

File tree

5 files changed

+282
-305
lines changed

5 files changed

+282
-305
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ lint:
1515
pipenv run pylint annofabapi --rcfile setup.cfg
1616

1717
test:
18-
pipenv run pytest tests -v --cov=annofabapi --cov-report=html
18+
pipenv run pytest tests -rs -v --cov=annofabapi --cov-report=html
1919

2020
publish_test:
2121
rm -fr build/ dist/ annofabapi.egg-info

annofabapi/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.24.0'
1+
__version__ = '0.24.1'

annofabapi/wrapper.py

+25-4
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
from annofabapi import AnnofabApi
1414
from annofabapi.exceptions import AnnofabApiException
1515
from annofabapi.models import (AnnotationSpecsV1, InputData, Inspection, InspectionStatus, Instruction, JobInfo,
16-
JobType, MyOrganization, Organization, OrganizationMember, Project, ProjectMember,
17-
SupplementaryData, Task)
16+
JobStatus, JobType, MyOrganization, Organization, OrganizationMember, Project,
17+
ProjectMember, SupplementaryData, Task)
1818
from annofabapi.utils import allow_404_error
1919

2020
logger = logging.getLogger(__name__)
@@ -615,6 +615,8 @@ def put_project_members(self, project_id, project_members: List[Dict[str, Any]])
615615
request_body = {
616616
"member_status": member["member_status"],
617617
"member_role": member["member_role"],
618+
"sampling_inspection_rate": member.get("sampling_inspection_rate"),
619+
"sampling_acceptance_rate": member.get("sampling_acceptance_rate"),
618620
"last_updated_datetime": last_updated_datetime,
619621
}
620622
updated_project_member = self.api.put_project_member(project_id, member["user_id"],
@@ -770,7 +772,7 @@ def get_all_tasks(self, project_id: str, query_params: Optional[Dict[str, Any]]
770772
return self._get_all_objects(self.api.get_tasks, limit=200, project_id=project_id, query_params=query_params)
771773

772774
#########################################
773-
# Public Method : AfInstructionApi
775+
# Public Method : Instruction
774776
#########################################
775777
def get_latest_instruction(self, project_id: str) -> Optional[Instruction]:
776778
"""
@@ -826,7 +828,7 @@ def upload_instruction_image(self, project_id: str, image_id: str, file_path: st
826828
return content["path"]
827829

828830
#########################################
829-
# Public Method : AfJobApi
831+
# Public Method : Job
830832
#########################################
831833
def delete_all_succeeded_job(self, project_id: str, job_type: JobType) -> List[JobInfo]:
832834
"""
@@ -876,6 +878,25 @@ def get_all_project_job(self, project_id: str, query_params: Dict[str, Any]) ->
876878
all_jobs.extend(r["list"])
877879
return all_jobs
878880

881+
def job_in_progress(self, project_id: str, job_type: JobType) -> bool:
882+
"""
883+
ジョブが進行中かどうか
884+
885+
Args:
886+
project_id: プロジェクトID
887+
job_type: ジョブ種別
888+
889+
Returns:
890+
True: ジョブが進行中かどうか
891+
892+
"""
893+
job_list = self.api.get_project_job(project_id, query_params={"type": job_type.value})[0]["list"]
894+
if len(job_list) == 0:
895+
return False
896+
897+
job = job_list[0]
898+
return job["job_status"] == JobStatus.PROGRESS.value
899+
879900
def wait_for_completion(self, project_id: str, job_type: JobType, job_access_interval: int = 60,
880901
max_job_access: int = 10) -> bool:
881902
"""

0 commit comments

Comments
 (0)