From bb877bf09db7cd2ecbcd0c44d176741b53c1d765 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:30:18 +0900 Subject: [PATCH 1/7] update swagger --- generate/swagger/swagger.v2.yaml | 2 +- generate/swagger/swagger.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/generate/swagger/swagger.v2.yaml b/generate/swagger/swagger.v2.yaml index 9671b182..b3402934 100644 --- a/generate/swagger/swagger.v2.yaml +++ b/generate/swagger/swagger.v2.yaml @@ -115,7 +115,7 @@ info: 上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。 - version: 0.94.4 + version: 0.94.7 title: AnnoFab Web API x-logo: url: "https://annofab.com/images/logo_landscape.png" diff --git a/generate/swagger/swagger.yaml b/generate/swagger/swagger.yaml index 685be62d..ed8de7cc 100644 --- a/generate/swagger/swagger.yaml +++ b/generate/swagger/swagger.yaml @@ -116,7 +116,7 @@ info: 上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。 また、AggregationResultの集約の件数は、合計で10000件以下に制限されており、それを超える件数がある場合は上位10000件が取得されます。もし、省略された部分を取得したい場合は、検索条件を縛って結果に上る集約の数を減らしてください。 - version: 0.94.4 + version: 0.94.7 title: AnnoFab Web API x-logo: url: "https://annofab.com/images/logo_landscape.png" From 451df2c8d3fe787f24234ea52973d85656905867 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:30:48 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=E9=9D=9E=E6=8E=A8=E5=A5=A8=E3=81=AA?= =?UTF-8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=82=92=E5=89=8A=E9=99=A4?= =?UTF-8?q?=20*=20utils.raise=5Ffor=5Fstatus=20*=20utils.log=5Ferror=5Fres?= =?UTF-8?q?ponse=20*=20utils.download?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- annofabapi/utils.py | 54 +++++---------------------------------------- 1 file changed, 5 insertions(+), 49 deletions(-) diff --git a/annofabapi/utils.py b/annofabapi/utils.py index c505810a..6333f26b 100644 --- a/annofabapi/utils.py +++ b/annofabapi/utils.py @@ -39,24 +39,6 @@ def _raise_for_status(response: requests.Response) -> None: raise e -def raise_for_status(response: requests.Response) -> None: - """ - HTTP Status CodeがErrorの場合、``requests.exceptions.HTTPError`` を発生させる。 - そのとき ``response.text`` もHTTPErrorに加えて、HTTPError発生時にエラーの原因が分かるようにする。 - - .. deprecated:: 2020-05-01 以降廃止予定です。 - - Args: - response: Response - - Raises: - requests.exceptions.HTTPError: - - """ - warnings.warn("deprecated", DeprecationWarning) - _raise_for_status(response) - - def _log_error_response(arg_logger: logging.Logger, response: requests.Response) -> None: """ HTTP Statusが400以上ならば、loggerにresponse/request情報を出力する @@ -99,22 +81,7 @@ def mask_password(d: RequestBodyHeader) -> RequestBodyHeader: arg_logger.debug("request.body = %s", mask_password(dict_request_body)) -def log_error_response(arg_logger: logging.Logger, response: requests.Response) -> None: - """ - HTTP Statusが400以上ならば、loggerにresponse/request情報を出力する - - .. deprecated:: 2020-05-01 以降廃止予定です。 - - Args: - arg_logger: logger - response: Response - - """ - warnings.warn("deprecated", DeprecationWarning) - _log_error_response(arg_logger, response) - - -def _download(url: str, dest_path: str) -> None: +def _download(url: str, dest_path: str) -> requests.Response: """ HTTP GETで取得した内容をファイルに保存する(ダウンロードする) @@ -123,6 +90,9 @@ def _download(url: str, dest_path: str) -> None: url: ダウンロード対象のURL dest_path: 保存先ファイルのパス + Returns: + URLにアクセスしたときのResponse情報 + """ response = requests.get(url) _raise_for_status(response) @@ -131,21 +101,7 @@ def _download(url: str, dest_path: str) -> None: p.parent.mkdir(parents=True, exist_ok=True) with open(dest_path, "wb") as f: f.write(response.content) - - -def download(url: str, dest_path: str) -> None: - """ - HTTP GETで取得した内容をファイルに保存する(ダウンロードする) - - .. deprecated:: 2020-05-01 以降廃止予定です。 - - Args: - url: ダウンロード対象のURL - dest_path: 保存先ファイルのパス - - """ - warnings.warn("deprecated", DeprecationWarning) - _download(url, dest_path) + return response def str_now() -> str: From 6f6af15b65891ca2fac7275a9109b1d69344b3d6 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:42:36 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[wrapper]=20=E3=83=80=E3=82=A6=E3=83=B3?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E5=AF=BE=E8=B1=A1=E3=81=AE"Last-Mod?= =?UTF-8?q?ified"=E3=82=92=E5=87=BA=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- annofabapi/wrapper.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/annofabapi/wrapper.py b/annofabapi/wrapper.py index b0752aeb..159e41c2 100644 --- a/annofabapi/wrapper.py +++ b/annofabapi/wrapper.py @@ -179,7 +179,8 @@ def download_annotation_archive(self, project_id: str, dest_path: str, v2: bool _, response = self.api.get_annotation_archive(project_id, query_params=query_params) url = response.headers["Location"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=simple_annotation, Last-Modified={response2.headers.get('Last-Modified')}") return url def download_full_annotation_archive(self, project_id: str, dest_path: str) -> str: @@ -199,7 +200,8 @@ def download_full_annotation_archive(self, project_id: str, dest_path: str) -> s warnings.warn("deprecated", DeprecationWarning) _, response = self.api.get_archive_full_with_pro_id(project_id) url = response.headers["Location"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=full_annotation, Last-Modified={response2.headers.get('Last-Modified')}") return url def get_all_annotation_list( @@ -1136,7 +1138,8 @@ def download_project_inputs_url(self, project_id: str, dest_path: str) -> str: """ content, _ = self.api.get_project_inputs_url(project_id) url = content["url"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=input_data, Last-Modified={response2.headers.get('Last-Modified')}") return url def download_project_tasks_url(self, project_id: str, dest_path: str) -> str: @@ -1155,7 +1158,8 @@ def download_project_tasks_url(self, project_id: str, dest_path: str) -> str: content, _ = self.api.get_project_tasks_url(project_id) url = content["url"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=task, Last-Modified={response2.headers.get('Last-Modified')}") return url def download_project_inspections_url(self, project_id: str, dest_path: str) -> str: @@ -1174,7 +1178,8 @@ def download_project_inspections_url(self, project_id: str, dest_path: str) -> s content, _ = self.api.get_project_inspections_url(project_id) url = content["url"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=inspection_comment, Last-Modified={response2.headers.get('Last-Modified')}") return url def download_project_task_history_events_url(self, project_id: str, dest_path: str) -> str: @@ -1193,7 +1198,8 @@ def download_project_task_history_events_url(self, project_id: str, dest_path: s content, _ = self.api.get_project_task_history_events_url(project_id) url = content["url"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=task_history_event, Last-Modified={response2.headers.get('Last-Modified')}") return url def download_project_task_histories_url(self, project_id: str, dest_path: str) -> str: @@ -1212,7 +1218,8 @@ def download_project_task_histories_url(self, project_id: str, dest_path: str) - content, _ = self.api.get_project_task_histories_url(project_id) url = content["url"] - _download(url, dest_path) + response2 = _download(url, dest_path) + logger.debug(f"type=task_history, Last-Modified={response2.headers.get('Last-Modified')}") return url ######################################### From c8e721ba6ebb6bb5825615ae439c64cf0a30f809 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:42:53 +0900 Subject: [PATCH 4/7] update README.md --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 54469511..4cde0472 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,8 @@ # 廃止予定 -## 2020-05-01以降 utilsのいくつかのメソッドを非公開 -以下のメソッドを非公開にします。以下のメソッドは本来非公開用でして、外部で利用することを想定していなかったためです。 -* utils.raise_for_status -* utils.log_error_response -* utils.download - - +## 2020-10-31 以降, +* `AnnofabApiWrapper.download_annotation_archive`メソッドの引数`v2`引数を削除します。WebAPIに渡す必要がなくなったためです。 # Features cURLやPostmanなどよりも簡単にAnnoFab Web APIにアクセスできます。 From 07bb547e43c38e5ee9c4e20653595f6ae64dc5cb Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:43:42 +0900 Subject: [PATCH 5/7] version up --- annofabapi/__version__.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/annofabapi/__version__.py b/annofabapi/__version__.py index 56073f48..ed9ae718 100644 --- a/annofabapi/__version__.py +++ b/annofabapi/__version__.py @@ -1 +1 @@ -__version__ = "0.38.9" +__version__ = "0.38.10" diff --git a/pyproject.toml b/pyproject.toml index 687bc7cc..207020b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "annofabapi" -version = "0.38.9" +version = "0.38.10" description = "Python Clinet Library of AnnoFab WebAPI (https://annofab.com/docs/api/)" authors = ["yuji38kwmt "] maintainers = ["yuji38kwmt "] From 6fea4f80cec80943e81dca13f7f73f88661ba619 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 18:59:50 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=E9=96=8B=E7=99=BA=E8=80=85=E7=94=A8?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README_for_developer.md | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/README_for_developer.md b/README_for_developer.md index f6aad97e..eba01352 100644 --- a/README_for_developer.md +++ b/README_for_developer.md @@ -92,43 +92,34 @@ $ poetry run pytest --print_log_annofabapi tests ## Release +## 事前作業 + +### PyPIのアカウントを作成 +1. 以下のURLにアクセスして、PyPIのアカウントを作成する。 +https://pypi.org/account/register/ + +2. 管理者に連絡して、Collaboratorsとして招待してもらう +https://pypi.org/project/annofabapi/ + ## リリース方法 ### 1. annofabapiのバージョンを上げる -`annofabapi/__version__.py`に記載されているバージョンを上げてください。バージョンはSemantic Versioning 2.0に従います。 +以下のファイルに記載されているバージョンを上げてください。 +* `annofabapi/__version__.py` +* `pyproject.toml` -* AnnoFabののバージョンアップにより、annofabapiをリリースするときは、マイナーバージョンを上げる。 +バージョンはSemantic Versioning 2.0に従います。 +* メソッドが追加されたときは、マイナーバージョンを上げる。 * annofabapiのバグ/ドキュメント修正などにより、annofabapiをリリースするときは、パッチバージョンを上げる。 ### 2. PyPIに登録する -1. TestPyPIに登録して、内容を確認する。 - -``` -$ make publish_test -``` - -2. TestPyPIからインストールして、利用できることを確認する。 - -``` -$ pip uninstall annofabapi -$ pip install --index-url https://test.pypi.org/simple/ annofabapi --upgrade -$ python -c "import annofabapi; print(annofabapi.__version__)" -``` - -3. PyPIに登録する。 ``` $ make publish ``` -4. PyPIからインストールして、利用できることを確認する。 - -``` -$ pip uninstall annofabapi -$ pip install annofabapi --upgrade -$ python -c "import annofabapi; print(annofabapi.__version__)" -``` +※ PyPIのユーザ名とパスワードの入力が求められます。 From 87c05568849809af3f6022f10845d80d6452b6e4 Mon Sep 17 00:00:00 2001 From: yuji38kwmt Date: Wed, 30 Sep 2020 19:00:35 +0900 Subject: [PATCH 7/7] format --- annofabapi/utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/annofabapi/utils.py b/annofabapi/utils.py index 6333f26b..c6ab7f3e 100644 --- a/annofabapi/utils.py +++ b/annofabapi/utils.py @@ -6,7 +6,6 @@ import datetime import json import logging -import warnings from pathlib import Path from typing import Any, Dict, List, Optional, Union