diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 22:03:35 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 22:03:35 +0000 |
| commit | 1cb3389946540285c5d0f96770ce5d7ed6db9437 (patch) | |
| tree | be8a2b15923da9d9ab0dbb6276571a8dfd1c6ee5 /python-annofabapi.spec | |
| parent | 01dab819d4b2a5428246f7d96a806b17ab79ebfe (diff) | |
automatic import of python-annofabapi
Diffstat (limited to 'python-annofabapi.spec')
| -rw-r--r-- | python-annofabapi.spec | 821 |
1 files changed, 821 insertions, 0 deletions
diff --git a/python-annofabapi.spec b/python-annofabapi.spec new file mode 100644 index 0000000..ab9efaf --- /dev/null +++ b/python-annofabapi.spec @@ -0,0 +1,821 @@ +%global _empty_manifest_terminate_build 0 +Name: python-annofabapi +Version: 0.68.0 +Release: 1 +Summary: Python Clinet Library of Annofab WebAPI (https://annofab.com/docs/api/) +License: MIT +URL: https://github.com/kurusugawa-computer/annofab-api-python-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f1/6b/cc36ae86a3181c56ff51ee6c98d2cbf680f957321becaefed20538f982cc/annofabapi-0.68.0.tar.gz +BuildArch: noarch + +Requires: python3-requests +Requires: python3-dateutil +Requires: python3-backoff +Requires: python3-dataclasses-json +Requires: python3-more-itertools + +%description +# annofab-api-python-client +[Annofab Web API](https://annofab.com/docs/api/) のPythonクライアントライブラリです。 + +[](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) +[](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) +[](https://badge.fury.io/py/annofabapi) +[](https://pypi.org/project/annofabapi/) +[](https://annofab-api-python-client.readthedocs.io/en/latest/?badge=latest) + + + + +* **Annofab Web API Documentation:** https://annofab.com/docs/api/ +* **Reference Documentation:** https://annofab-api-python-client.readthedocs.io/en/latest/ +* **annofab-cli** https://github.com/kurusugawa-computer/annofab-cli + * 「タスクの一括差し戻し」や、「プロジェクト間の差分表示」など、Annofabの画面で実施するには時間がかかる操作を、CLIツールとして提供しています。 +* **開発者用ドキュメント**: [README_for_developer.md](https://github.com/kurusugawa-computer/annofab-api-python-client/blob/main/README_for_developer.md) + + + + +# 注意 +* 作者または著作権者は、ソフトウェアに関してなんら責任を負いません。 +* 現在、APIは開発途上版です。予告なく互換性のない変更がある可能性をご了承ください。 +* put, post, delete系のメソッドを間違えて実行してしまわないよう、注意してください。特に「プロジェクト削除」や「アノテーション仕様更新」のAPIには十分注意してください。 + +# 廃止予定 + + +### 2022/08/23 以降 +検査コメント関連のWebAPIの廃止に伴い、以下のメソッドやクラスを廃止します。 +* `annofabapi.AnnofabApi.batch_update_inspections`:替わりに`annofabapi.AnnofabApi.batch_update_comments`を使用してください。 +* `annofabapi.AnnofabApi.get_inspections`:替わりに`annofabapi.AnnofabApi.get_comments`を使用してください。 +* annofabapi.Wrapper.update_status_of_inspections +* annofabapi.dataclasses.inspection +* annofabapi.models.InspectionStatus + + +### 2022/12/01 以降 +以下のデータクラスを廃止します。 +* `annofabapi.dataclass.instruction.*` +* `annofabapi.dataclass.statistics.*` +* `annofabapi.dataclass.webhook.*` +* `annofabapi.dataclass.my.*` +* `annofabapi.dataclass.organization.OrganizationActivity` + + +# Features +cURLやPostmanなどよりも簡単にAnnofab Web APIにアクセスできます。 + +* ログインを意識せずに、APIを利用できます。 +* アクセス過多などで失敗した場合は、リトライされます。 +* 「画像を入力データとして登録する」機能など、APIを組み合わせた機能も利用できます。 + + + +# Requirements +* Python 3.8+ + +# Install + +``` +$ pip install annofabapi +``` + +https://pypi.org/project/annofabapi/ + +# Usage + +## インスタンス生成 + +### user_id, passwordをコンストラクタ引数に渡す場合 + +```python +# APIアクセス用のインスタンスを生成 +from annofabapi import build + + +user_id = "XXXXXX" +password = "YYYYYY" + +service = build(user_id, password) +``` + +### `.netrc`に認証情報を記載する場合 +`.netrc`ファイルに、AnnofabのユーザIDとパスワードを記載します。 + +```plain:.netrc +machine annofab.com +login annofab_user_id +password annofab_password +``` + +```python +from annofabapi import build_from_netrc +service = build_from_netrc() +``` + + +#### For Linux +* パスは`$HOME/.netrc` +* `$ chmod 600 $HOME/.netrc`でパーミッションを変更する + + + +#### For Windows +* パスは`%USERPROFILE%\.netrc` + + +### 環境変数に認証情報を設定する場合 +環境変数`ANNOFAB_USER_ID`、`ANNOFAB_PASSWORD`にユーザIDとパスワードを設定します。 + +```python +from annofabapi import build_from_env +service = build_from_env() +``` + + +### `.netrc`または環境変数に認証情報を設定する場合 +``build()`` を実行すると、環境変数または `.netrc` ファイルから認証情報を読み込みます。 + +```python +from annofabapi import build +service = build() +``` + +優先順位は以下の通りです。 +1. 環境変数 +2. `.netrc` + + +## `service.api`のサンプルコード + +* `service.api`には、Web APIに対応するメソッドが定義されています。 +* メソッド名は、[Annofab Web APIのOpenAPI specification](https://annofab.com/docs/api/swagger.yaml)に記載されている`operationId`を、スネークケースに変換したものです。 +* 各メソッドの戻り値の型は`Tupple[Content, Response]`です。 +Responseは[requestsモジュールのReponseオブジェクト](https://2.python-requests.org/en/master/api/#requests.Response)です。 +ContentはReponseの中身です。 + +```python +project_id = "ZZZZZZ" +# `status`が`complete`のタスクを取得する +content, response = service.api.get_tasks(project_id, query_params={"status": "complete"}) + +print(type(content)) +# <class 'dict'> +print(content) +# {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + +print(type(response)) +# <class 'requests.models.Response'> +print(response.headers["Content-Type"]) +# application/json +``` + +## `service.wrapper`のサンプルコード + +`service.wrapper`には、`server.api`を組み合わせたメソッドが定義されています。 + + +```python +# `status`が`complete`のタスクすべてを取得する +tasks = service.wrapper.get_all_tasks(project_id, query_params={"status": "complete"}) +print(type(tasks)) +# <class 'list'> +print(tasks) +# [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + + +# 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') +``` + +## アノテーションzipの読み込み +ダウンロードしたアノテーションzipを、JSONファイルごとに読み込みます。 +zipファイルを展開したディレクトリも読み込み可能です。 + +```python +import zipfile +from pathlib import Path +from annofabapi.parser import lazy_parse_simple_annotation_dir, lazy_parse_simple_annotation_zip, SimpleAnnotationZipParser, SimpleAnnotationDirParser, lazy_parse_simple_annotation_zip_by_task + + +# Simpleアノテーションzipの読み込み +iter_parser = lazy_parse_simple_annotation_zip(Path("simple-annotation.zip")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipを展開したディレクトリの読み込み +iter_parser = lazy_parse_simple_annotation_dir(Path("simple-annotation-dir")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipをタスク単位で読み込む +task_iter_parser = lazy_parse_simple_annotation_zip_by_task(Path("simple-annotation.zip")) +for task_parser in task_iter_parser: + print(task_parser.task_id) + for parser in task_parser.lazy_parse(): + simple_annotation = parser.parse() + print(simple_annotation) + + +# Simpleアノテーションzip内の1個のJSONファイルを読み込み +with zipfile.ZipFile('simple-annotation.zip', 'r') as zip_file: + parser = SimpleAnnotationZipParser(zip_file, "task01/12345678-abcd-1234-abcd-1234abcd5678.json") + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzip内を展開したディレクトリ内の1個のJSONファイルを読み込み +parser = SimpleAnnotationDirParser(Path("task01/12345678-abcd-1234-abcd-1234abcd5678.json")) +simple_annotation = parser.parse() +print(simple_annotation) + + +``` + + +## DataClass +`annofabapi.dataclass`に、データ構造用のクラスがあります。 +これらのクラスを利用すれば、属性で各値にアクセスできます。 + +```python +from annofabapi.dataclass.task import Task +dict_task, _ = service.api.get_task(project_id, task_id) +task = Task.from_dict(dict_task) + +print(task.task_id) +print(task.status) + +``` + + +## 備考 + +### `annofabapi`のログを出力する方法(サンプル) + +```python +import logging +logging_formatter = '%(levelname)-8s : %(asctime)s : %(name)s : %(message)s' +logging.basicConfig(format=logging_formatter) +logging.getLogger("annofabapi").setLevel(level=logging.DEBUG) +``` + + + +%package -n python3-annofabapi +Summary: Python Clinet Library of Annofab WebAPI (https://annofab.com/docs/api/) +Provides: python-annofabapi +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-annofabapi +# annofab-api-python-client +[Annofab Web API](https://annofab.com/docs/api/) のPythonクライアントライブラリです。 + +[](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) +[](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) +[](https://badge.fury.io/py/annofabapi) +[](https://pypi.org/project/annofabapi/) +[](https://annofab-api-python-client.readthedocs.io/en/latest/?badge=latest) + + + + +* **Annofab Web API Documentation:** https://annofab.com/docs/api/ +* **Reference Documentation:** https://annofab-api-python-client.readthedocs.io/en/latest/ +* **annofab-cli** https://github.com/kurusugawa-computer/annofab-cli + * 「タスクの一括差し戻し」や、「プロジェクト間の差分表示」など、Annofabの画面で実施するには時間がかかる操作を、CLIツールとして提供しています。 +* **開発者用ドキュメント**: [README_for_developer.md](https://github.com/kurusugawa-computer/annofab-api-python-client/blob/main/README_for_developer.md) + + + + +# 注意 +* 作者または著作権者は、ソフトウェアに関してなんら責任を負いません。 +* 現在、APIは開発途上版です。予告なく互換性のない変更がある可能性をご了承ください。 +* put, post, delete系のメソッドを間違えて実行してしまわないよう、注意してください。特に「プロジェクト削除」や「アノテーション仕様更新」のAPIには十分注意してください。 + +# 廃止予定 + + +### 2022/08/23 以降 +検査コメント関連のWebAPIの廃止に伴い、以下のメソッドやクラスを廃止します。 +* `annofabapi.AnnofabApi.batch_update_inspections`:替わりに`annofabapi.AnnofabApi.batch_update_comments`を使用してください。 +* `annofabapi.AnnofabApi.get_inspections`:替わりに`annofabapi.AnnofabApi.get_comments`を使用してください。 +* annofabapi.Wrapper.update_status_of_inspections +* annofabapi.dataclasses.inspection +* annofabapi.models.InspectionStatus + + +### 2022/12/01 以降 +以下のデータクラスを廃止します。 +* `annofabapi.dataclass.instruction.*` +* `annofabapi.dataclass.statistics.*` +* `annofabapi.dataclass.webhook.*` +* `annofabapi.dataclass.my.*` +* `annofabapi.dataclass.organization.OrganizationActivity` + + +# Features +cURLやPostmanなどよりも簡単にAnnofab Web APIにアクセスできます。 + +* ログインを意識せずに、APIを利用できます。 +* アクセス過多などで失敗した場合は、リトライされます。 +* 「画像を入力データとして登録する」機能など、APIを組み合わせた機能も利用できます。 + + + +# Requirements +* Python 3.8+ + +# Install + +``` +$ pip install annofabapi +``` + +https://pypi.org/project/annofabapi/ + +# Usage + +## インスタンス生成 + +### user_id, passwordをコンストラクタ引数に渡す場合 + +```python +# APIアクセス用のインスタンスを生成 +from annofabapi import build + + +user_id = "XXXXXX" +password = "YYYYYY" + +service = build(user_id, password) +``` + +### `.netrc`に認証情報を記載する場合 +`.netrc`ファイルに、AnnofabのユーザIDとパスワードを記載します。 + +```plain:.netrc +machine annofab.com +login annofab_user_id +password annofab_password +``` + +```python +from annofabapi import build_from_netrc +service = build_from_netrc() +``` + + +#### For Linux +* パスは`$HOME/.netrc` +* `$ chmod 600 $HOME/.netrc`でパーミッションを変更する + + + +#### For Windows +* パスは`%USERPROFILE%\.netrc` + + +### 環境変数に認証情報を設定する場合 +環境変数`ANNOFAB_USER_ID`、`ANNOFAB_PASSWORD`にユーザIDとパスワードを設定します。 + +```python +from annofabapi import build_from_env +service = build_from_env() +``` + + +### `.netrc`または環境変数に認証情報を設定する場合 +``build()`` を実行すると、環境変数または `.netrc` ファイルから認証情報を読み込みます。 + +```python +from annofabapi import build +service = build() +``` + +優先順位は以下の通りです。 +1. 環境変数 +2. `.netrc` + + +## `service.api`のサンプルコード + +* `service.api`には、Web APIに対応するメソッドが定義されています。 +* メソッド名は、[Annofab Web APIのOpenAPI specification](https://annofab.com/docs/api/swagger.yaml)に記載されている`operationId`を、スネークケースに変換したものです。 +* 各メソッドの戻り値の型は`Tupple[Content, Response]`です。 +Responseは[requestsモジュールのReponseオブジェクト](https://2.python-requests.org/en/master/api/#requests.Response)です。 +ContentはReponseの中身です。 + +```python +project_id = "ZZZZZZ" +# `status`が`complete`のタスクを取得する +content, response = service.api.get_tasks(project_id, query_params={"status": "complete"}) + +print(type(content)) +# <class 'dict'> +print(content) +# {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + +print(type(response)) +# <class 'requests.models.Response'> +print(response.headers["Content-Type"]) +# application/json +``` + +## `service.wrapper`のサンプルコード + +`service.wrapper`には、`server.api`を組み合わせたメソッドが定義されています。 + + +```python +# `status`が`complete`のタスクすべてを取得する +tasks = service.wrapper.get_all_tasks(project_id, query_params={"status": "complete"}) +print(type(tasks)) +# <class 'list'> +print(tasks) +# [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + + +# 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') +``` + +## アノテーションzipの読み込み +ダウンロードしたアノテーションzipを、JSONファイルごとに読み込みます。 +zipファイルを展開したディレクトリも読み込み可能です。 + +```python +import zipfile +from pathlib import Path +from annofabapi.parser import lazy_parse_simple_annotation_dir, lazy_parse_simple_annotation_zip, SimpleAnnotationZipParser, SimpleAnnotationDirParser, lazy_parse_simple_annotation_zip_by_task + + +# Simpleアノテーションzipの読み込み +iter_parser = lazy_parse_simple_annotation_zip(Path("simple-annotation.zip")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipを展開したディレクトリの読み込み +iter_parser = lazy_parse_simple_annotation_dir(Path("simple-annotation-dir")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipをタスク単位で読み込む +task_iter_parser = lazy_parse_simple_annotation_zip_by_task(Path("simple-annotation.zip")) +for task_parser in task_iter_parser: + print(task_parser.task_id) + for parser in task_parser.lazy_parse(): + simple_annotation = parser.parse() + print(simple_annotation) + + +# Simpleアノテーションzip内の1個のJSONファイルを読み込み +with zipfile.ZipFile('simple-annotation.zip', 'r') as zip_file: + parser = SimpleAnnotationZipParser(zip_file, "task01/12345678-abcd-1234-abcd-1234abcd5678.json") + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzip内を展開したディレクトリ内の1個のJSONファイルを読み込み +parser = SimpleAnnotationDirParser(Path("task01/12345678-abcd-1234-abcd-1234abcd5678.json")) +simple_annotation = parser.parse() +print(simple_annotation) + + +``` + + +## DataClass +`annofabapi.dataclass`に、データ構造用のクラスがあります。 +これらのクラスを利用すれば、属性で各値にアクセスできます。 + +```python +from annofabapi.dataclass.task import Task +dict_task, _ = service.api.get_task(project_id, task_id) +task = Task.from_dict(dict_task) + +print(task.task_id) +print(task.status) + +``` + + +## 備考 + +### `annofabapi`のログを出力する方法(サンプル) + +```python +import logging +logging_formatter = '%(levelname)-8s : %(asctime)s : %(name)s : %(message)s' +logging.basicConfig(format=logging_formatter) +logging.getLogger("annofabapi").setLevel(level=logging.DEBUG) +``` + + + +%package help +Summary: Development documents and examples for annofabapi +Provides: python3-annofabapi-doc +%description help +# annofab-api-python-client +[Annofab Web API](https://annofab.com/docs/api/) のPythonクライアントライブラリです。 + +[](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) +[](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) +[](https://badge.fury.io/py/annofabapi) +[](https://pypi.org/project/annofabapi/) +[](https://annofab-api-python-client.readthedocs.io/en/latest/?badge=latest) + + + + +* **Annofab Web API Documentation:** https://annofab.com/docs/api/ +* **Reference Documentation:** https://annofab-api-python-client.readthedocs.io/en/latest/ +* **annofab-cli** https://github.com/kurusugawa-computer/annofab-cli + * 「タスクの一括差し戻し」や、「プロジェクト間の差分表示」など、Annofabの画面で実施するには時間がかかる操作を、CLIツールとして提供しています。 +* **開発者用ドキュメント**: [README_for_developer.md](https://github.com/kurusugawa-computer/annofab-api-python-client/blob/main/README_for_developer.md) + + + + +# 注意 +* 作者または著作権者は、ソフトウェアに関してなんら責任を負いません。 +* 現在、APIは開発途上版です。予告なく互換性のない変更がある可能性をご了承ください。 +* put, post, delete系のメソッドを間違えて実行してしまわないよう、注意してください。特に「プロジェクト削除」や「アノテーション仕様更新」のAPIには十分注意してください。 + +# 廃止予定 + + +### 2022/08/23 以降 +検査コメント関連のWebAPIの廃止に伴い、以下のメソッドやクラスを廃止します。 +* `annofabapi.AnnofabApi.batch_update_inspections`:替わりに`annofabapi.AnnofabApi.batch_update_comments`を使用してください。 +* `annofabapi.AnnofabApi.get_inspections`:替わりに`annofabapi.AnnofabApi.get_comments`を使用してください。 +* annofabapi.Wrapper.update_status_of_inspections +* annofabapi.dataclasses.inspection +* annofabapi.models.InspectionStatus + + +### 2022/12/01 以降 +以下のデータクラスを廃止します。 +* `annofabapi.dataclass.instruction.*` +* `annofabapi.dataclass.statistics.*` +* `annofabapi.dataclass.webhook.*` +* `annofabapi.dataclass.my.*` +* `annofabapi.dataclass.organization.OrganizationActivity` + + +# Features +cURLやPostmanなどよりも簡単にAnnofab Web APIにアクセスできます。 + +* ログインを意識せずに、APIを利用できます。 +* アクセス過多などで失敗した場合は、リトライされます。 +* 「画像を入力データとして登録する」機能など、APIを組み合わせた機能も利用できます。 + + + +# Requirements +* Python 3.8+ + +# Install + +``` +$ pip install annofabapi +``` + +https://pypi.org/project/annofabapi/ + +# Usage + +## インスタンス生成 + +### user_id, passwordをコンストラクタ引数に渡す場合 + +```python +# APIアクセス用のインスタンスを生成 +from annofabapi import build + + +user_id = "XXXXXX" +password = "YYYYYY" + +service = build(user_id, password) +``` + +### `.netrc`に認証情報を記載する場合 +`.netrc`ファイルに、AnnofabのユーザIDとパスワードを記載します。 + +```plain:.netrc +machine annofab.com +login annofab_user_id +password annofab_password +``` + +```python +from annofabapi import build_from_netrc +service = build_from_netrc() +``` + + +#### For Linux +* パスは`$HOME/.netrc` +* `$ chmod 600 $HOME/.netrc`でパーミッションを変更する + + + +#### For Windows +* パスは`%USERPROFILE%\.netrc` + + +### 環境変数に認証情報を設定する場合 +環境変数`ANNOFAB_USER_ID`、`ANNOFAB_PASSWORD`にユーザIDとパスワードを設定します。 + +```python +from annofabapi import build_from_env +service = build_from_env() +``` + + +### `.netrc`または環境変数に認証情報を設定する場合 +``build()`` を実行すると、環境変数または `.netrc` ファイルから認証情報を読み込みます。 + +```python +from annofabapi import build +service = build() +``` + +優先順位は以下の通りです。 +1. 環境変数 +2. `.netrc` + + +## `service.api`のサンプルコード + +* `service.api`には、Web APIに対応するメソッドが定義されています。 +* メソッド名は、[Annofab Web APIのOpenAPI specification](https://annofab.com/docs/api/swagger.yaml)に記載されている`operationId`を、スネークケースに変換したものです。 +* 各メソッドの戻り値の型は`Tupple[Content, Response]`です。 +Responseは[requestsモジュールのReponseオブジェクト](https://2.python-requests.org/en/master/api/#requests.Response)です。 +ContentはReponseの中身です。 + +```python +project_id = "ZZZZZZ" +# `status`が`complete`のタスクを取得する +content, response = service.api.get_tasks(project_id, query_params={"status": "complete"}) + +print(type(content)) +# <class 'dict'> +print(content) +# {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + +print(type(response)) +# <class 'requests.models.Response'> +print(response.headers["Content-Type"]) +# application/json +``` + +## `service.wrapper`のサンプルコード + +`service.wrapper`には、`server.api`を組み合わせたメソッドが定義されています。 + + +```python +# `status`が`complete`のタスクすべてを取得する +tasks = service.wrapper.get_all_tasks(project_id, query_params={"status": "complete"}) +print(type(tasks)) +# <class 'list'> +print(tasks) +# [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... + + +# 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') +``` + +## アノテーションzipの読み込み +ダウンロードしたアノテーションzipを、JSONファイルごとに読み込みます。 +zipファイルを展開したディレクトリも読み込み可能です。 + +```python +import zipfile +from pathlib import Path +from annofabapi.parser import lazy_parse_simple_annotation_dir, lazy_parse_simple_annotation_zip, SimpleAnnotationZipParser, SimpleAnnotationDirParser, lazy_parse_simple_annotation_zip_by_task + + +# Simpleアノテーションzipの読み込み +iter_parser = lazy_parse_simple_annotation_zip(Path("simple-annotation.zip")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipを展開したディレクトリの読み込み +iter_parser = lazy_parse_simple_annotation_dir(Path("simple-annotation-dir")) +for parser in iter_parser: + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzipをタスク単位で読み込む +task_iter_parser = lazy_parse_simple_annotation_zip_by_task(Path("simple-annotation.zip")) +for task_parser in task_iter_parser: + print(task_parser.task_id) + for parser in task_parser.lazy_parse(): + simple_annotation = parser.parse() + print(simple_annotation) + + +# Simpleアノテーションzip内の1個のJSONファイルを読み込み +with zipfile.ZipFile('simple-annotation.zip', 'r') as zip_file: + parser = SimpleAnnotationZipParser(zip_file, "task01/12345678-abcd-1234-abcd-1234abcd5678.json") + simple_annotation = parser.parse() + print(simple_annotation) + +# Simpleアノテーションzip内を展開したディレクトリ内の1個のJSONファイルを読み込み +parser = SimpleAnnotationDirParser(Path("task01/12345678-abcd-1234-abcd-1234abcd5678.json")) +simple_annotation = parser.parse() +print(simple_annotation) + + +``` + + +## DataClass +`annofabapi.dataclass`に、データ構造用のクラスがあります。 +これらのクラスを利用すれば、属性で各値にアクセスできます。 + +```python +from annofabapi.dataclass.task import Task +dict_task, _ = service.api.get_task(project_id, task_id) +task = Task.from_dict(dict_task) + +print(task.task_id) +print(task.status) + +``` + + +## 備考 + +### `annofabapi`のログを出力する方法(サンプル) + +```python +import logging +logging_formatter = '%(levelname)-8s : %(asctime)s : %(name)s : %(message)s' +logging.basicConfig(format=logging_formatter) +logging.getLogger("annofabapi").setLevel(level=logging.DEBUG) +``` + + + +%prep +%autosetup -n annofabapi-0.68.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-annofabapi -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.68.0-1 +- Package Spec generated |
