|
13 | 13 | from annofabapi import AnnofabApi
|
14 | 14 | from annofabapi.exceptions import AnnofabApiException
|
15 | 15 | 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) |
18 | 18 | from annofabapi.utils import allow_404_error
|
19 | 19 |
|
20 | 20 | logger = logging.getLogger(__name__)
|
@@ -615,6 +615,8 @@ def put_project_members(self, project_id, project_members: List[Dict[str, Any]])
|
615 | 615 | request_body = {
|
616 | 616 | "member_status": member["member_status"],
|
617 | 617 | "member_role": member["member_role"],
|
| 618 | + "sampling_inspection_rate": member.get("sampling_inspection_rate"), |
| 619 | + "sampling_acceptance_rate": member.get("sampling_acceptance_rate"), |
618 | 620 | "last_updated_datetime": last_updated_datetime,
|
619 | 621 | }
|
620 | 622 | 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]]
|
770 | 772 | return self._get_all_objects(self.api.get_tasks, limit=200, project_id=project_id, query_params=query_params)
|
771 | 773 |
|
772 | 774 | #########################################
|
773 |
| - # Public Method : AfInstructionApi |
| 775 | + # Public Method : Instruction |
774 | 776 | #########################################
|
775 | 777 | def get_latest_instruction(self, project_id: str) -> Optional[Instruction]:
|
776 | 778 | """
|
@@ -826,7 +828,7 @@ def upload_instruction_image(self, project_id: str, image_id: str, file_path: st
|
826 | 828 | return content["path"]
|
827 | 829 |
|
828 | 830 | #########################################
|
829 |
| - # Public Method : AfJobApi |
| 831 | + # Public Method : Job |
830 | 832 | #########################################
|
831 | 833 | def delete_all_succeeded_job(self, project_id: str, job_type: JobType) -> List[JobInfo]:
|
832 | 834 | """
|
@@ -876,6 +878,25 @@ def get_all_project_job(self, project_id: str, query_params: Dict[str, Any]) ->
|
876 | 878 | all_jobs.extend(r["list"])
|
877 | 879 | return all_jobs
|
878 | 880 |
|
| 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 | + |
879 | 900 | def wait_for_completion(self, project_id: str, job_type: JobType, job_access_interval: int = 60,
|
880 | 901 | max_job_access: int = 10) -> bool:
|
881 | 902 | """
|
|
0 commit comments