Skip to main content

Python Clinet Library of AnnoFab API (https://annofab.com/docs/api/)

Project description

annofab-api-python-client

AnnoFab Web APIのPythonクライアントライブラリです。 https://annofab.com/docs/api/

注意

  • 作者または著作権者は、ソフトウェアに関してなんら責任を負いません。
  • 現在、APIは開発途上版です。予告なく互換性のない変更がある可能性をご了承ください。
  • put, post, delete系のメソッドを間違えて実行してしまわないよう、注意してください。特に「プロジェクト削除」や「アノテーション仕様更新」のAPIには十分注意してください。

Features

  • ログインを意識せずに、APIを利用できます。
  • アクセス過多などで失敗した場合は、リトライされます。
  • 「画像を入力データとして登録する」機能など、APIを組み合わせた機能を利用できます。

Requirements

  • python 3.6+

Install

$ pipenv install requests

Usage

インスタンス生成

# APIアクセス用のインスタンスを生成
from annofabapi import build


user_id = "XXXXXX"
password = "YYYYYY"

service = build(user_id, password)

service.apiのサンプルコード

project_id = "ZZZZZZ"
# `status`が`complete`のタスクを取得する
content, response = service.api.get_tasks(project_id, query_params={'status': 'complete'})
print(content)
# {'list': [{'project_id': ...

# simpleアノテーションzipのダウンロード用URLを取得する
content, response = service.api.get_annotation_archive(project_id)
url = response.headers['Location']

service.wrapperのサンプルコード

service.wrapperは、APIを組み合わせたメソッドが定義されています。

# `status`が`complete`のタスクすべてを取得する
content, response = service.wrapper.get_all_tasks(project_id, query_params={'status': 'complete'})
print(content)
# [{'project_id': ...

# simpleアノテーションzipのダウンロード
service.wrapper.download_annotation_archive(project_id, 'output_dir')

# 画像ファイルを入力データとして登録する
service.wrapper.put_input_data_from_file(project_id, 'sample_input_data_id', f'sample.png')

src_project_id = "AAAAAA"
dest_project_id = "BBBBBB"

# プロジェクトメンバをコピー(誤って実行しないように注意すること)
service.wrapper.copy_project_members(src_project_id, dest_project_id)

# アノテーション仕様のコピー(誤って実行しないように注意すること)
service.wrapper.copy_annotation_specs(src_project_id, dest_project_id)

備考

ログの出力方法の例

import logging
logging_formatter = '%(levelname)s : %(asctime)s : %(name)s : %(funcName)s : %(message)s'
logging.basicConfig(format=logging_formatter)
logging.getLogger("annofabapi").setLevel(level=logging.DEBUG)

リトライの処理をカスタマイズ

TODO

annofabapi/api.pyの生成方法

annofabapi/api.pyAnnoFab Web APIのOpenAPI specificationから自動生成しています。 詳細はgenerate/README.mdを参照してください。

テスト実行方法

準備

  1. pytest.iniにテスト対象のproject_idを指定. プロジェクトが変更される恐れがあることに注意!!
  2. 以下の環境変数にAnnofabの認証情報を設定
    • ANNOFAB_USER_ID
    • ANNOFAB_PASSWORD
  3. pipenv run tox でテスト実行

備考

  • 基本的に、テストメソッドは、エラーが発生しないこと(HTTP STatus codeが400系でないこと)を確認しています。それより詳細な確認は行っていません。

document生成方法

Windowsの場合

> docs\make.bat

ソースチェックツール

$ mypy annofabapi

$ flake8 

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

annofabapi-0.1.0-py3-none-any.whl (4.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page