openrewrite-remote 0.3.3__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,179 +0,0 @@
1
- from functools import lru_cache
2
- from operator import attrgetter
3
- from typing import Optional, Type, Callable, TypeVar
4
-
5
- from rewrite.java import *
6
- from rewrite.python.tree import PyComment
7
- from rewrite.remote import SenderContext, ReceiverContext
8
-
9
- T = TypeVar('T')
10
-
11
- # IMPORTANT: This duplicates everything from Java's `extensions` module, because we use `PyComment` rather than `TextComment`
12
- # A better solution to this would be nice
13
-
14
- def receive_container(container: Optional[JContainer[T]], _: Optional[str], ctx: ReceiverContext) -> JContainer[T]:
15
- if container is not None:
16
- container = container.with_before(ctx.receive_node(container.before, receive_space))
17
- container = container.padding.with_elements(ctx.receive_nodes(container.padding.elements, receive_right_padded_tree))
18
- container = container.with_markers(ctx.receive_node(container.markers, ctx.receive_markers))
19
- else:
20
- container = JContainer(
21
- ctx.receive_node(None, receive_space),
22
- ctx.receive_nodes(None, receive_right_padded_tree),
23
- ctx.receive_node(None, ctx.receive_markers)
24
- )
25
- return container
26
-
27
-
28
- def send_container(container: JContainer[T], ctx: SenderContext):
29
- ctx.send_node(container, attrgetter('_before'), send_space)
30
- ctx.send_nodes(container, attrgetter('_elements'), send_right_padded, lambda t: t.element.id)
31
- ctx.send_node(container, attrgetter('_markers'), ctx.send_markers)
32
-
33
-
34
- def send_left_padded(left_padded: JLeftPadded[T], ctx: SenderContext):
35
- ctx.send_node(left_padded, attrgetter('_before'), send_space)
36
- if isinstance(left_padded.element, (J, Space)):
37
- ctx.send_node(left_padded, attrgetter('_element'), ctx.send_tree)
38
- else:
39
- ctx.send_value(left_padded, attrgetter('_element'))
40
- ctx.send_node(left_padded, attrgetter('_markers'), ctx.send_markers)
41
-
42
-
43
- def send_right_padded(right_padded: JRightPadded[T], ctx: SenderContext):
44
- if isinstance(right_padded.element, J):
45
- ctx.send_node(right_padded, attrgetter('_element'), ctx.send_tree)
46
- elif isinstance(right_padded.element, Space):
47
- ctx.send_node(right_padded, attrgetter('_element'), send_space)
48
- else:
49
- ctx.send_value(right_padded, attrgetter('_element'))
50
- ctx.send_node(right_padded, attrgetter('_after'), send_space)
51
- ctx.send_node(right_padded, attrgetter('_markers'), ctx.send_markers)
52
-
53
-
54
- def receive_space(space: Optional[Space], _: Optional[str], ctx: ReceiverContext) -> Space:
55
- if space is not None:
56
- space = space.with_comments(ctx.receive_nodes(space.comments, receive_comment))
57
- space = space.with_whitespace(ctx.receive_value(space.whitespace, str))
58
- else:
59
- space = Space(
60
- ctx.receive_values(None),
61
- ctx.receive_value(None, str)
62
- )
63
-
64
- return space
65
-
66
-
67
- def receive_comment(comment: Optional[Comment], _: Optional[str], ctx: ReceiverContext) -> Comment:
68
- if comment:
69
- comment = comment.with_text(ctx.receive_value(comment.text, str))
70
- comment = comment.with_suffix(ctx.receive_value(comment.suffix, str))
71
- comment = comment.with_multiline(ctx.receive_value(comment.aligned_to_indent, bool))
72
- comment = comment.with_markers(ctx.receive_node(comment.markers, ctx.receive_markers))
73
- else:
74
- comment = PyComment(
75
- ctx.receive_value(None, str),
76
- ctx.receive_value(None, str),
77
- ctx.receive_value(None, bool),
78
- ctx.receive_node(None, ctx.receive_markers)
79
- )
80
- return comment
81
-
82
-
83
- def send_space(space: Space, ctx: SenderContext):
84
- ctx.send_nodes(space, attrgetter('_comments'), send_comment, lambda x: x)
85
- ctx.send_value(space, attrgetter('_whitespace'))
86
-
87
- def send_comment(comment: PyComment, ctx: SenderContext):
88
- ctx.send_value(comment, attrgetter('_text'))
89
- ctx.send_value(comment, attrgetter('_suffix'))
90
- ctx.send_value(comment, attrgetter('_aligned_to_indent'))
91
- ctx.send_node(comment, attrgetter('_markers'), ctx.send_markers)
92
-
93
-
94
- @lru_cache(maxsize=10)
95
- def left_padded_value_receiver(type_: Type) -> Callable[[Optional[JLeftPadded[T]], Optional[str], ReceiverContext], JLeftPadded[T]]:
96
- def receiver(left_padded: Optional[JLeftPadded[T]], _: Optional[str], ctx: ReceiverContext) -> JLeftPadded[T]:
97
- if left_padded is not None:
98
- left_padded = left_padded.with_before(ctx.receive_node(left_padded.before, receive_space))
99
- left_padded = left_padded.with_element(ctx.receive_value(left_padded.element, type_))
100
- left_padded = left_padded.with_markers(ctx.receive_node(left_padded.markers, ctx.receive_markers))
101
- else:
102
- left_padded = JLeftPadded(
103
- ctx.receive_node(None, receive_space),
104
- ctx.receive_value(None, type_),
105
- ctx.receive_node(None, ctx.receive_markers)
106
- )
107
- return left_padded
108
- return receiver
109
-
110
-
111
- @lru_cache(maxsize=10)
112
- def left_padded_node_receiver(type_: Type) -> Callable[[Optional[JLeftPadded[T]], Optional[str], ReceiverContext], JLeftPadded[T]]:
113
- if type_ is Space:
114
- def space_receiver(left_padded: Optional[JLeftPadded[T]], _: Optional[str], ctx: ReceiverContext) -> JLeftPadded[T]:
115
- if left_padded is not None:
116
- left_padded = left_padded.with_before(ctx.receive_node(left_padded.before, receive_space))
117
- left_padded = left_padded.with_element(ctx.receive_node(left_padded.element, receive_space))
118
- left_padded = left_padded.with_markers(ctx.receive_node(left_padded.markers, ctx.receive_markers))
119
- else:
120
- left_padded = JLeftPadded(
121
- ctx.receive_node(None, receive_space),
122
- ctx.receive_node(None, receive_space),
123
- ctx.receive_node(None, ctx.receive_markers)
124
- )
125
- return left_padded
126
- return space_receiver
127
- else:
128
- raise ValueError("Only Space is supported")
129
-
130
-
131
- def receive_left_padded_tree(left_padded: Optional[JLeftPadded[T]], _: Optional[str], ctx: ReceiverContext) -> JLeftPadded[T]:
132
- if left_padded is not None:
133
- left_padded = left_padded.with_before(ctx.receive_node(left_padded.before, receive_space))
134
- left_padded = left_padded.with_element(ctx.receive_node(left_padded.element, ctx.receive_tree))
135
- left_padded = left_padded.with_markers(ctx.receive_node(left_padded.markers, ctx.receive_markers))
136
- else:
137
- left_padded = JLeftPadded(
138
- ctx.receive_node(None, receive_space),
139
- ctx.receive_node(None, ctx.receive_tree),
140
- ctx.receive_node(None, ctx.receive_markers)
141
- )
142
- return left_padded
143
-
144
-
145
- @lru_cache(maxsize=10)
146
- def right_padded_value_receiver(type_: Type) -> Callable[[Optional[JRightPadded[T]], Optional[str], ReceiverContext], JRightPadded[T]]:
147
- def receiver(right_padded: Optional[JRightPadded[T]], _: Optional[str], ctx: ReceiverContext) -> JRightPadded[T]:
148
- if right_padded is not None:
149
- right_padded = right_padded.with_element(ctx.receive_value(right_padded.element, type_))
150
- right_padded = right_padded.with_after(ctx.receive_node(right_padded.after, receive_space))
151
- right_padded = right_padded.with_markers(ctx.receive_node(right_padded.markers, ctx.receive_markers))
152
- else:
153
- right_padded = JRightPadded(
154
- ctx.receive_value(None, type_),
155
- ctx.receive_node(None, receive_space),
156
- ctx.receive_node(None, ctx.receive_markers)
157
- )
158
- return right_padded
159
- return receiver
160
-
161
-
162
- @lru_cache(maxsize=10)
163
- def right_padded_node_receiver(type_: Type) -> Callable[[Optional[JRightPadded[T]], Optional[str], ReceiverContext], JRightPadded[T]]:
164
- raise ValueError("Not implemented")
165
-
166
-
167
- def receive_right_padded_tree(right_padded: Optional[JRightPadded[T]], _: Optional[str],
168
- ctx: ReceiverContext) -> JRightPadded[T]:
169
- if right_padded is not None:
170
- right_padded = right_padded.with_element(ctx.receive_node(right_padded.element, ctx.receive_tree))
171
- right_padded = right_padded.with_after(ctx.receive_node(right_padded.after, receive_space))
172
- right_padded = right_padded.with_markers(ctx.receive_node(right_padded.markers, ctx.receive_markers))
173
- else:
174
- right_padded = JRightPadded(
175
- ctx.receive_node(None, ctx.receive_tree),
176
- ctx.receive_node(None, receive_space),
177
- ctx.receive_node(None, ctx.receive_markers)
178
- )
179
- return right_padded