From 83993d7d51cba687ba39dec73687ab92079234c3 Mon Sep 17 00:00:00 2001 From: Niels de Bruin Date: Wed, 27 Nov 2024 14:19:44 +0100 Subject: [PATCH 1/3] Fixes some bugs in test code --- rewrite/rewrite/java/extensions.py | 4 +++- rewrite/rewrite/python/support_types.py | 4 ++++ rewrite/rewrite/test.py | 6 ++++-- rewrite/rewrite/visitor.py | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rewrite/rewrite/java/extensions.py b/rewrite/rewrite/java/extensions.py index 35abddcd..fb3d6f77 100644 --- a/rewrite/rewrite/java/extensions.py +++ b/rewrite/rewrite/java/extensions.py @@ -1,6 +1,8 @@ from typing import Optional, TypeVar, TYPE_CHECKING from .support_types import J, JRightPadded, JLeftPadded, JContainer, Space +from ..visitor import Cursor +from ..tree import Tree if TYPE_CHECKING: from .visitor import JavaVisitor @@ -16,7 +18,7 @@ def visit_container(v: 'JavaVisitor', container: Optional[JContainer[J2]], loc: v.cursor = Cursor(v.cursor, container) before = v.visit_space(container.before, loc.before_location, p) - js = [v.visit_right_padded(el.element, loc.element_location, p) for el in container.padding.elements] + js = [v.visit_right_padded(el, loc.element_location, p) for el in container.padding.elements] v.cursor = v.cursor.parent return container if js == container.padding.elements and before is container.before else JContainer(before, js, container.markers) diff --git a/rewrite/rewrite/python/support_types.py b/rewrite/rewrite/python/support_types.py index 0d856982..437ec69c 100644 --- a/rewrite/rewrite/python/support_types.py +++ b/rewrite/rewrite/python/support_types.py @@ -23,6 +23,10 @@ def accept(self, v: TreeVisitor[Any, P], p: P) -> Optional[Any]: def accept_python(self, v: 'PythonVisitor[P]', p: P) -> Optional['J']: ... + def is_acceptable(self, v: TreeVisitor[Any, P], p: P) -> bool: + from .visitor import PythonVisitor + return isinstance(v, PythonVisitor) + class PySpace: class Location(Enum): diff --git a/rewrite/rewrite/test.py b/rewrite/rewrite/test.py index ded691d3..17664c50 100644 --- a/rewrite/rewrite/test.py +++ b/rewrite/rewrite/test.py @@ -72,7 +72,9 @@ def rewrite_run(*sources: list[SourceSpec]): if spec.after is not None: after = spec.after(source_file.print_all()) - assert after == spec.before + assert source_file.print_all() == after + else: + assert source_file.print_all() == spec.before break except Exception: raise @@ -85,6 +87,6 @@ def python(before: str, after: str = None) -> list[SourceSpec]: random_id(), PythonParserBuilder(), textwrap.dedent(before), - None if after is None else lambda: after, + None if after is None else lambda _: textwrap.dedent(after), None )] diff --git a/rewrite/rewrite/visitor.py b/rewrite/rewrite/visitor.py index b00b7d4d..ebb780f8 100644 --- a/rewrite/rewrite/visitor.py +++ b/rewrite/rewrite/visitor.py @@ -41,7 +41,7 @@ def first_enclosing(self, type: Type[P]) -> P: class TreeVisitor(Protocol[T, P]): _visit_count: int = 0 _cursor: Cursor = Cursor(None, "root") - _after_visit: Optional[List[TreeVisitor[Any, P]]] + _after_visit: Optional[List[TreeVisitor[Any, P]]] = None def is_acceptable(self, source_file: SourceFile, p: P) -> bool: return True From 17c0fb956f5a5624471ceb83b02713efffd10c6a Mon Sep 17 00:00:00 2001 From: Niels de Bruin Date: Wed, 27 Nov 2024 15:19:58 +0100 Subject: [PATCH 2/3] test with export dep --- rewrite/pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rewrite/pyproject.toml b/rewrite/pyproject.toml index c6f1cabc..f83a2495 100644 --- a/rewrite/pyproject.toml +++ b/rewrite/pyproject.toml @@ -19,5 +19,5 @@ openrewrite-remote = "*" #openrewrite-remote = { path = "../../../moderneinc/rewrite-remote/python/rewrite-remote", develop = true } [build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" \ No newline at end of file +requires = ["poetry-core>=1.9.0", "poetry-plugin-export>=1.8.0"] +build-backend = "poetry.core.masonry.api" From ad3a315395f2be55a83cd568c51bdf59400e154e Mon Sep 17 00:00:00 2001 From: Niels de Bruin Date: Wed, 27 Nov 2024 15:25:38 +0100 Subject: [PATCH 3/3] Enable poetry-plugin-export in CI Update poetry version --- .github/workflows/ci.yml | 3 +++ rewrite/pyproject.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6d2a8808..ba1f0e05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,9 @@ jobs: - name: Install Poetry uses: snok/install-poetry@v1 + with: + version: 1.8.1 + plugins: poetry-plugin-export - name: build-java run: ./gradlew ${{ env.GRADLE_SWITCHES }} build diff --git a/rewrite/pyproject.toml b/rewrite/pyproject.toml index f83a2495..56e249c4 100644 --- a/rewrite/pyproject.toml +++ b/rewrite/pyproject.toml @@ -19,5 +19,5 @@ openrewrite-remote = "*" #openrewrite-remote = { path = "../../../moderneinc/rewrite-remote/python/rewrite-remote", develop = true } [build-system] -requires = ["poetry-core>=1.9.0", "poetry-plugin-export>=1.8.0"] +requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"