%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クライアントライブラリです。 [![Build Status](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client.svg?branch=main)](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) [![CodeQL](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) [![PyPI version](https://badge.fury.io/py/annofabapi.svg)](https://badge.fury.io/py/annofabapi) [![Python Versions](https://img.shields.io/pypi/pyversions/annofabapi.svg)](https://pypi.org/project/annofabapi/) [![Documentation Status](https://readthedocs.org/projects/annofab-api-python-client/badge/?version=latest)](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)) # print(content) # {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... print(type(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)) # 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クライアントライブラリです。 [![Build Status](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client.svg?branch=main)](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) [![CodeQL](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) [![PyPI version](https://badge.fury.io/py/annofabapi.svg)](https://badge.fury.io/py/annofabapi) [![Python Versions](https://img.shields.io/pypi/pyversions/annofabapi.svg)](https://pypi.org/project/annofabapi/) [![Documentation Status](https://readthedocs.org/projects/annofab-api-python-client/badge/?version=latest)](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)) # print(content) # {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... print(type(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)) # 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クライアントライブラリです。 [![Build Status](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client.svg?branch=main)](https://app.travis-ci.com/kurusugawa-computer/annofab-api-python-client) [![CodeQL](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/kurusugawa-computer/annofab-api-python-client/actions/workflows/codeql-analysis.yml) [![PyPI version](https://badge.fury.io/py/annofabapi.svg)](https://badge.fury.io/py/annofabapi) [![Python Versions](https://img.shields.io/pypi/pyversions/annofabapi.svg)](https://pypi.org/project/annofabapi/) [![Documentation Status](https://readthedocs.org/projects/annofab-api-python-client/badge/?version=latest)](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)) # print(content) # {'list': [{'project_id': 'ZZZZZZ', 'task_id': '20190317_2', 'phase': 'acceptance', ... print(type(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)) # 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 - 0.68.0-1 - Package Spec generated