From 18c2345a4222a361054da9e2aa52cb18ac63b21c Mon Sep 17 00:00:00 2001 From: Aclrian <32142988+Aclrian@users.noreply.github.com> Date: Sat, 5 Nov 2022 14:03:15 +0100 Subject: [PATCH 1/5] create migrate command --- package-parser/package_parser/cli/_cli.py | 44 +++++++++++++++++++ .../package_parser/cli/_run_migrate.py | 18 ++++++++ 2 files changed, 62 insertions(+) create mode 100644 package-parser/package_parser/cli/_run_migrate.py diff --git a/package-parser/package_parser/cli/_cli.py b/package-parser/package_parser/cli/_cli.py index 72c4672cc..54d6ed6cb 100644 --- a/package-parser/package_parser/cli/_cli.py +++ b/package-parser/package_parser/cli/_cli.py @@ -9,11 +9,13 @@ from package_parser.cli._run_annotations import _run_annotations from package_parser.cli._run_api import _run_api_command from package_parser.cli._run_usages import _run_usages_command +from package_parser.cli._run_migrate import _run_migrate_command _API_COMMAND = "api" _USAGES_COMMAND = "usages" _ANNOTATIONS_COMMAND = "annotations" _ALL_COMMAND = "all" +_MIGRATE_COMMAND = "migrate" def cli() -> None: @@ -38,6 +40,13 @@ def cli() -> None: args.processes, args.batchsize, ) + elif args.command == _MIGRATE_COMMAND: + _run_migrate_command( + args.apiv1, + args.annotations, + args.apiv2, + args.out + ) def _get_args() -> argparse.Namespace: @@ -52,6 +61,7 @@ def _get_args() -> argparse.Namespace: _add_usages_subparser(subparsers) _add_annotations_subparser(subparsers) _add_all_subparser(subparsers) + _add_migrate_subparser(subparsers) return parser.parse_args() @@ -184,3 +194,37 @@ def _add_all_subparser(subparsers: _SubParsersAction) -> None: required=False, default=100, ) + + +def _add_migrate_subparser(subparsers) -> None: + generate_parser = subparsers.add_parser( + _MIGRATE_COMMAND, help="Migrate Annotations for the new version based on the previous version." + ) + generate_parser.add_argument( + "-a1", + "--apiv1", + help="File created with the 'api' command from the previous version.", + type=Path, + required=True, + ) + generate_parser.add_argument( + "-a2", + "--apiv2", + help="File created by the 'api' command from the new version.", + type=Path, + required=True, + ) + generate_parser.add_argument( + "-a", + "--annotations", + help="File that includes all annotations of the previous version.", + type=Path, + required=True, + ) + generate_parser.add_argument( + "-o", + "--out", + help="Output directory.", + type=Path, + required=True + ) diff --git a/package-parser/package_parser/cli/_run_migrate.py b/package-parser/package_parser/cli/_run_migrate.py new file mode 100644 index 000000000..a57ccd3a7 --- /dev/null +++ b/package-parser/package_parser/cli/_run_migrate.py @@ -0,0 +1,18 @@ +import json +from pathlib import Path + +from package_parser.processing.api.model import API + + +def _run_migrate_command( + apiv1_file_path: Path, annotations_file_path: Path, apiv2_file_path: Path, out_dir_path: Path +) -> None: + apiv1 = _read_api_file(apiv1_file_path) + apiv2 = _read_api_file(apiv2_file_path) + + +def _read_api_file(api_file_path: Path) -> API: + with open(api_file_path) as api_file: + api_json = json.load(api_file) + + return API.from_json(api_json) From 7a6f77eef0b103ac38e722fd5d93fda708823c88 Mon Sep 17 00:00:00 2001 From: Aclrian <32142988+Aclrian@users.noreply.github.com> Date: Sat, 5 Nov 2022 14:24:45 +0100 Subject: [PATCH 2/5] Update README.md --- package-parser/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package-parser/README.md b/package-parser/README.md index 0ecd26d0b..d84fa10d3 100644 --- a/package-parser/README.md +++ b/package-parser/README.md @@ -30,3 +30,7 @@ A tool to analyze client and API code written in Python. ```shell parse-package annotations -a data/api/sklearn__api.json -u data/usages/sklearn__usage_counts.json -o out/annotations.json ``` +4. Migrate annotations for a new version of the API: + ```shell + parse-package migrate parse-package migrate -a1 data/api/sklearn__api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out + ``` From ae1391bbf475e327cec99596d0d5b05740180a25 Mon Sep 17 00:00:00 2001 From: Aclrian <32142988+Aclrian@users.noreply.github.com> Date: Sat, 5 Nov 2022 14:31:48 +0100 Subject: [PATCH 3/5] removed not yet used local vars --- package-parser/package_parser/cli/_run_migrate.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package-parser/package_parser/cli/_run_migrate.py b/package-parser/package_parser/cli/_run_migrate.py index a57ccd3a7..7874d9cb6 100644 --- a/package-parser/package_parser/cli/_run_migrate.py +++ b/package-parser/package_parser/cli/_run_migrate.py @@ -7,8 +7,7 @@ def _run_migrate_command( apiv1_file_path: Path, annotations_file_path: Path, apiv2_file_path: Path, out_dir_path: Path ) -> None: - apiv1 = _read_api_file(apiv1_file_path) - apiv2 = _read_api_file(apiv2_file_path) + pass def _read_api_file(api_file_path: Path) -> API: From 414c5495e96370f862b0df73ecbf6adb5eed7eec Mon Sep 17 00:00:00 2001 From: Aclrian Date: Sat, 5 Nov 2022 13:39:23 +0000 Subject: [PATCH 4/5] style: apply automated linter fixes --- package-parser/README.md | 12 ++++++------ package-parser/package_parser/cli/_cli.py | 18 +++++------------- .../package_parser/cli/_run_migrate.py | 5 ++++- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/package-parser/README.md b/package-parser/README.md index d84fa10d3..02939c7e9 100644 --- a/package-parser/README.md +++ b/package-parser/README.md @@ -27,10 +27,10 @@ A tool to analyze client and API code written in Python. parse-package usages -p sklearn -s "Kaggle Kernels" -o out ``` 3. Generate annotations for the API: - ```shell - parse-package annotations -a data/api/sklearn__api.json -u data/usages/sklearn__usage_counts.json -o out/annotations.json - ``` + ```shell + parse-package annotations -a data/api/sklearn__api.json -u data/usages/sklearn__usage_counts.json -o out/annotations.json + ``` 4. Migrate annotations for a new version of the API: - ```shell - parse-package migrate parse-package migrate -a1 data/api/sklearn__api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out - ``` + ```shell + parse-package migrate parse-package migrate -a1 data/api/sklearn__api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out + ``` diff --git a/package-parser/package_parser/cli/_cli.py b/package-parser/package_parser/cli/_cli.py index 54d6ed6cb..88ef34c65 100644 --- a/package-parser/package_parser/cli/_cli.py +++ b/package-parser/package_parser/cli/_cli.py @@ -8,8 +8,8 @@ from package_parser.cli._run_all import _run_all_command from package_parser.cli._run_annotations import _run_annotations from package_parser.cli._run_api import _run_api_command -from package_parser.cli._run_usages import _run_usages_command from package_parser.cli._run_migrate import _run_migrate_command +from package_parser.cli._run_usages import _run_usages_command _API_COMMAND = "api" _USAGES_COMMAND = "usages" @@ -41,12 +41,7 @@ def cli() -> None: args.batchsize, ) elif args.command == _MIGRATE_COMMAND: - _run_migrate_command( - args.apiv1, - args.annotations, - args.apiv2, - args.out - ) + _run_migrate_command(args.apiv1, args.annotations, args.apiv2, args.out) def _get_args() -> argparse.Namespace: @@ -198,7 +193,8 @@ def _add_all_subparser(subparsers: _SubParsersAction) -> None: def _add_migrate_subparser(subparsers) -> None: generate_parser = subparsers.add_parser( - _MIGRATE_COMMAND, help="Migrate Annotations for the new version based on the previous version." + _MIGRATE_COMMAND, + help="Migrate Annotations for the new version based on the previous version.", ) generate_parser.add_argument( "-a1", @@ -222,9 +218,5 @@ def _add_migrate_subparser(subparsers) -> None: required=True, ) generate_parser.add_argument( - "-o", - "--out", - help="Output directory.", - type=Path, - required=True + "-o", "--out", help="Output directory.", type=Path, required=True ) diff --git a/package-parser/package_parser/cli/_run_migrate.py b/package-parser/package_parser/cli/_run_migrate.py index 7874d9cb6..e9cea2907 100644 --- a/package-parser/package_parser/cli/_run_migrate.py +++ b/package-parser/package_parser/cli/_run_migrate.py @@ -5,7 +5,10 @@ def _run_migrate_command( - apiv1_file_path: Path, annotations_file_path: Path, apiv2_file_path: Path, out_dir_path: Path + apiv1_file_path: Path, + annotations_file_path: Path, + apiv2_file_path: Path, + out_dir_path: Path, ) -> None: pass From 5624d1797d6638c087d95050e4dba26f6906f0da Mon Sep 17 00:00:00 2001 From: Aclrian <32142988+Aclrian@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:31:27 +0100 Subject: [PATCH 5/5] removed duplicated words --- package-parser/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-parser/README.md b/package-parser/README.md index 02939c7e9..0fac9974d 100644 --- a/package-parser/README.md +++ b/package-parser/README.md @@ -32,5 +32,5 @@ A tool to analyze client and API code written in Python. ``` 4. Migrate annotations for a new version of the API: ```shell - parse-package migrate parse-package migrate -a1 data/api/sklearn__api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out + parse-package migrate -a1 data/api/sklearn__api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out ```