annofabapi.utils module

annofabapi.utils.allow_404_error(function)

Not Found Error(404)を無視して処理するデコレータ。 リソースの存在確認などに利用する。

annofabapi.utils.can_put_annotation(task: Dict[str, Any], my_account_id: str)bool[source]

対象タスクが、put_annotation APIで、アノテーションを更新できる状態かどうか。 過去に担当者が割り当たっている場合、または現在の担当者が自分自身の場合は、アノテーションを更新できる。

Parameters
  • task – 対象タスク

  • my_account_id – 自分(ログインしているユーザ)のアカウントID

Returns

Trueならば、タスクの状態を変更せずに`put_annotation` APIを実行できる。

annofabapi.utils.get_number_of_rejections(task_histories: List[Dict[str, Any]], phase: annofabapi.models.TaskPhase, phase_stage: int = 1)int[source]

タスク履歴から、指定されたタスクフェーズでの差し戻し回数を取得する。

Parameters
  • task_histories – タスク履歴

  • phase – どのフェーズで差し戻されたか(TaskPhase.INSPECTIONかTaskPhase.ACCEPTANCE)

  • phase_stage – どのフェーズステージで差し戻されたか。デフォルトは1。

Returns

差し戻し回数

annofabapi.utils.get_task_history_index_skipped_acceptance(task_history_list: List[Dict[str, Any]])List[int][source]

受入がスキップされたタスク履歴のインデックス番号(0始まり)を返す。

Parameters

task_history_list – タスク履歴List

Returns

受入フェーズがスキップされた履歴のインデックス番号(0始まり)。受入がスキップされていない場合は空リストを返す。

annofabapi.utils.get_task_history_index_skipped_inspection(task_history_list: List[Dict[str, Any]])List[int][source]

検査フェーズがスキップされたタスク履歴のインデックス番号(0始まり)を返す。

Parameters

task_history_list – タスク履歴List

Returns

検査フェーズがスキップされた履歴のインデックス番号(0始まり)。検査がスキップされていない場合は空リストを返す。

annofabapi.utils.ignore_http_error(status_code_list: List[int])[source]

HTTPErrorが発生したとき、特定のstatus codeを無視して処理するデコレータ。

Parameters

status_code_list – 無視するhttp status codeのList

annofabapi.utils.my_backoff(function)[source]

HTTP Status Codeが429 or 5XXのときはリトライする. 最大5分間リトライする。

annofabapi.utils.str_now()str[source]

現在日時をISO8601 拡張形式で取得する。

Returns

ISO 8601 formatの現在日時

annofabapi.utils.to_iso8601_extension(d: datetime.datetime, tz: Optional[datetime.tzinfo] = None)str[source]

datetime.datetimeを、ISO8601 拡張形式のstringに変換する。 2019-05-08T10:00:00.000+09:00

Parameters
  • d – datetimeオブジェクト

  • tz – タイムゾーンオブジェクト。Noneの場合、ローカルのタイムゾーンを設定する。

Returns

ISO 8601 拡張形式の日時