openrewrite-remote 0.13.1__py3-none-any.whl → 0.13.3__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.
rewrite_remote/sender.py CHANGED
@@ -2,39 +2,35 @@
2
2
  from __future__ import absolute_import
3
3
 
4
4
  import decimal
5
- from abc import ABC, abstractmethod
6
5
  from dataclasses import fields
7
6
  from pathlib import Path
8
7
  from typing import (
9
- Any,
10
8
  Callable,
11
9
  ClassVar,
12
10
  Dict,
13
11
  Generic,
14
12
  List,
15
- Optional,
16
13
  Protocol,
17
14
  TYPE_CHECKING,
18
15
  Type,
19
16
  TypeVar,
20
17
  )
21
18
  from uuid import UUID
19
+
22
20
  import cbor2
23
21
  from cbor2 import CBOREncoder
24
-
25
- from rewrite.visitor import TreeVisitor
26
22
  from rewrite import Tree, Markers, Marker, ParseErrorVisitor, Cursor, Style
23
+ from rewrite.visitor import TreeVisitor
27
24
 
25
+ from rewrite_remote import remote_utils
26
+ from rewrite_remote.event import *
27
+ from rewrite_remote.remote_utils import Operation
28
28
  from rewrite_remote.type_utils import (
29
29
  to_java_type_name,
30
30
  to_java_field_name,
31
31
  to_java_type_name_from_value,
32
32
  )
33
33
 
34
- from rewrite_remote import remote_utils
35
- from rewrite_remote.event import *
36
- from rewrite_remote.remote_utils import Operation
37
-
38
34
  if TYPE_CHECKING:
39
35
  from .remoting import RemotingContext
40
36
 
@@ -56,7 +52,7 @@ class OmniSender(Sender):
56
52
 
57
53
  class TreeSender(Protocol):
58
54
  def send_node(
59
- self, diff_event: DiffEvent, visitor: Callable[["TreeSender"], None]
55
+ self, diff_event: DiffEvent, visitor: Callable[["TreeSender"], None]
60
56
  ) -> None: ...
61
57
 
62
58
  def send_value(self, diff_event: DiffEvent) -> None: ...
@@ -72,10 +68,10 @@ class SenderContext(Generic[T]):
72
68
  Registry: Dict[Type[Any], Callable[[], Sender]] = {}
73
69
 
74
70
  def __init__(
75
- self,
76
- sender: "TreeSender",
77
- visitor: TreeVisitor = None,
78
- before: Optional[Any] = None,
71
+ self,
72
+ sender: "TreeSender",
73
+ visitor: TreeVisitor = None,
74
+ before: Optional[Any] = None,
79
75
  ):
80
76
  self.sender = sender
81
77
  self.visitor = visitor
@@ -86,7 +82,7 @@ class SenderContext(Generic[T]):
86
82
  # FIXME find better solution
87
83
  try:
88
84
  if type_.__bases__.__contains__(entry_type) or issubclass(
89
- type_, entry_type
85
+ type_, entry_type
90
86
  ):
91
87
  return factory()
92
88
  except:
@@ -94,15 +90,15 @@ class SenderContext(Generic[T]):
94
90
  raise ValueError(f"Unsupported sender type: {type_}")
95
91
 
96
92
  def fork(
97
- self, visitor: TreeVisitor, before: Optional[Any] = None
93
+ self, visitor: TreeVisitor, before: Optional[Any] = None
98
94
  ) -> "SenderContext[T]":
99
95
  return SenderContext(self.sender, visitor, before)
100
96
 
101
97
  def visit(
102
- self,
103
- consumer: Callable[[V, "SenderContext"], None],
104
- after: V,
105
- before: Optional[V] = None,
98
+ self,
99
+ consumer: Callable[[V, "SenderContext"], None],
100
+ after: V,
101
+ before: Optional[V] = None,
106
102
  ) -> None:
107
103
  save_before = self.before
108
104
  self.before = before
@@ -116,10 +112,10 @@ class SenderContext(Generic[T]):
116
112
  OmniSender().send(after, before, self)
117
113
 
118
114
  def send_node(
119
- self,
120
- owner: A,
121
- extractor: Callable[[A], Optional[V]],
122
- details: Callable[[V, "SenderContext[T]"], None],
115
+ self,
116
+ owner: A,
117
+ extractor: Callable[[A], Optional[V]],
118
+ details: Callable[[V, "SenderContext[T]"], None],
123
119
  ) -> None:
124
120
  self.send_node_internal(
125
121
  extractor(owner),
@@ -128,7 +124,7 @@ class SenderContext(Generic[T]):
128
124
  )
129
125
 
130
126
  def send_value(
131
- self, owner: Any, value_extractor: Callable[[T], Optional[V]]
127
+ self, owner: Any, value_extractor: Callable[[T], Optional[V]]
132
128
  ) -> None:
133
129
  after_value = value_extractor(owner)
134
130
  before_value = value_extractor(self.before) if self.before is not None else None
@@ -140,7 +136,7 @@ class SenderContext(Generic[T]):
140
136
  self.send_typed_value_internal(after_value, before_value)
141
137
 
142
138
  def send_list_event(
143
- self, after: Optional[List[V]], before: Optional[List[V]]
139
+ self, after: Optional[List[V]], before: Optional[List[V]]
144
140
  ) -> bool:
145
141
  if after == before:
146
142
  evt = DiffEvent(EventType.NoChange, None, None)
@@ -153,15 +149,15 @@ class SenderContext(Generic[T]):
153
149
 
154
150
  self.sender.send_value(evt)
155
151
  return (
156
- evt.event_type != EventType.NoChange and evt.event_type != EventType.Delete
152
+ evt.event_type != EventType.NoChange and evt.event_type != EventType.Delete
157
153
  )
158
154
 
159
155
  def send_nodes(
160
- self,
161
- owner: A,
162
- element_extractor: Callable[[A], List[V]],
163
- details: Callable[[V, "SenderContext"], None],
164
- id_function: Callable[[V], I],
156
+ self,
157
+ owner: A,
158
+ element_extractor: Callable[[A], List[V]],
159
+ details: Callable[[V, "SenderContext"], None],
160
+ id_function: Callable[[V], I],
165
161
  ) -> None:
166
162
  after_list = element_extractor(owner)
167
163
  before_list = (
@@ -193,10 +189,10 @@ class SenderContext(Generic[T]):
193
189
  self.sender.send_value(DiffEvent(EventType.EndList, None, None))
194
190
 
195
191
  def send_values(
196
- self,
197
- owner: T,
198
- value_extractor: Callable[[T], List[V]],
199
- id_function: Callable[[V], I],
192
+ self,
193
+ owner: T,
194
+ value_extractor: Callable[[T], List[V]],
195
+ id_function: Callable[[V], I],
200
196
  ) -> None:
201
197
  after_list = value_extractor(owner)
202
198
  before_list = value_extractor(self.before) if self.before is not None else None
@@ -224,10 +220,10 @@ class SenderContext(Generic[T]):
224
220
  self.sender.send_value(DiffEvent(EventType.EndList, None, None))
225
221
 
226
222
  def send_typed_values(
227
- self,
228
- owner: T,
229
- value_extractor: Callable[[T], List[V]],
230
- id_function: Callable[[V], I],
223
+ self,
224
+ owner: T,
225
+ value_extractor: Callable[[T], List[V]],
226
+ id_function: Callable[[V], I],
231
227
  ) -> None:
232
228
  after_list = value_extractor(owner)
233
229
  before_list = value_extractor(self.before) if self.before is not None else None
@@ -273,10 +269,10 @@ class SenderContext(Generic[T]):
273
269
  return isinstance(after, (Tree, Markers)) or isinstance(before, (Tree, Markers))
274
270
 
275
271
  def send_node_internal(
276
- self,
277
- after: Optional[V],
278
- before: Optional[V],
279
- details: Callable[[V, "SenderContext"], None],
272
+ self,
273
+ after: Optional[V],
274
+ before: Optional[V],
275
+ details: Callable[[V, "SenderContext"], None],
280
276
  ) -> None:
281
277
  if self.are_equal(after, before):
282
278
  evt = DiffEvent(EventType.NoChange, None, None)
@@ -325,15 +321,15 @@ class SenderContext(Generic[T]):
325
321
 
326
322
  class SerializationContext:
327
323
  def __init__(
328
- self,
329
- remoting_context: "RemotingContext",
330
- value_serializers: Optional[Dict[Type[Any], "ValueSerializer"]] = None,
324
+ self,
325
+ remoting_context: "RemotingContext",
326
+ value_serializers: Optional[Dict[Type[Any], "ValueSerializer"]] = None,
331
327
  ):
332
328
  self.remoting_context = remoting_context
333
329
  self.value_serializers = value_serializers or {}
334
330
 
335
331
  def serialize(
336
- self, value: Any, type_name: Optional[str], encoder: CBOREncoder
332
+ self, value: Any, type_name: Optional[str], encoder: CBOREncoder
337
333
  ) -> None:
338
334
  if value is None:
339
335
  encoder.encode_none(None)
@@ -388,10 +384,10 @@ class JsonSender(TreeSender):
388
384
  diff_event.msg, diff_event.concrete_type, self._encoder
389
385
  )
390
386
  elif diff_event.event_type in (
391
- EventType.Delete,
392
- EventType.NoChange,
393
- EventType.StartList,
394
- EventType.EndList,
387
+ EventType.Delete,
388
+ EventType.NoChange,
389
+ EventType.StartList,
390
+ EventType.EndList,
395
391
  ):
396
392
  self._encoder.encode([diff_event.event_type.value])
397
393
  else:
@@ -408,60 +404,52 @@ INDEFINITE_ARRAY_START = b"\x9f"
408
404
  INDEFINITE_MAP_START = b"\xbf"
409
405
  BREAK_MARKER = b"\xff"
410
406
 
407
+ ValueSerializer = Callable[[Any, Optional[str], CBOREncoder, SerializationContext], None]
411
408
 
412
- class ValueSerializer(ABC):
413
409
 
414
- @abstractmethod
415
- def serialize(
416
- self,
417
- value: Any,
418
- type_name: Optional[str],
419
- writer: CBOREncoder,
420
- context: SerializationContext,
421
- ) -> None:
422
- pass
423
-
424
- @staticmethod
425
- def write_object_using_reflection(
410
+ def write_object_using_reflection(
426
411
  value: Any,
427
412
  type_name: Optional[str],
428
413
  with_id: bool,
429
414
  encoder: CBOREncoder,
430
415
  context: SerializationContext,
431
- ) -> None:
432
- if type(value).__qualname__ == "JavaType.Primitive":
433
- # FIXME implement type attribution support
434
- encoder.encode(["org.openrewrite.java.tree.JavaType$Primitive", 0])
435
- return
436
- if with_id and (id := context.remoting_context.try_get_id(value)):
437
- encoder.encode_int(id)
438
- return
439
-
440
- encoder.write(INDEFINITE_MAP_START)
441
- encoder.encode_string("@c")
442
- encoder.encode_string(type_name or to_java_type_name(type(value)))
443
- if with_id:
444
- encoder.encode_string("@ref")
445
- id = context.remoting_context.add(value)
446
- encoder.encode_int(id)
447
-
448
- for field in fields(value):
449
- if field.name[0] == "_" and (
416
+ ) -> None:
417
+ if type(value).__qualname__ == "JavaType.Primitive":
418
+ # FIXME implement type attribution support
419
+ encoder.encode(["org.openrewrite.java.tree.JavaType$Primitive", 0])
420
+ return
421
+ if with_id and (id := context.remoting_context.try_get_id(value)):
422
+ encoder.encode_int(id)
423
+ return
424
+
425
+ encoder.write(INDEFINITE_MAP_START)
426
+ encoder.encode_string("@c")
427
+ encoder.encode_string(type_name or to_java_type_name(type(value)))
428
+ if with_id:
429
+ encoder.encode_string("@ref")
430
+ id = context.remoting_context.add(value)
431
+ encoder.encode_int(id)
432
+
433
+ for field in fields(value):
434
+ if field.name[0] == "_" and (
450
435
  not hasattr(field.type, "__origin__")
451
436
  or field.type.__origin__ is not ClassVar
452
- ):
453
- encoder.encode_string(to_java_field_name(field))
454
- context.serialize(getattr(value, field.name), None, encoder)
455
- encoder.write(BREAK_MARKER)
437
+ ):
438
+ encoder.encode_string(to_java_field_name(field))
439
+ context.serialize(getattr(value, field.name), None, encoder)
440
+ encoder.write(BREAK_MARKER)
456
441
 
457
442
 
458
443
  class DefaultValueSerializer(ValueSerializer):
444
+ def __call__(self, *args, **kwargs):
445
+ return self.serialize(*args, **kwargs)
446
+
459
447
  def serialize(
460
- self,
461
- value: Any,
462
- type_name: Optional[str],
463
- encoder: CBOREncoder,
464
- context: SerializationContext,
448
+ self,
449
+ value: Any,
450
+ type_name: Optional[str],
451
+ encoder: CBOREncoder,
452
+ context: SerializationContext,
465
453
  ) -> None:
466
454
  if isinstance(value, (int, float, str, bool, decimal.Decimal)):
467
455
  encoder.encode(value)
@@ -503,8 +491,8 @@ class DefaultValueSerializer(ValueSerializer):
503
491
  encoder.encode_int(id)
504
492
  for field in fields(value):
505
493
  if field.name[0] == "_" and (
506
- not hasattr(field.type, "__origin__")
507
- or field.type.__origin__ is not ClassVar
494
+ not hasattr(field.type, "__origin__")
495
+ or field.type.__origin__ is not ClassVar
508
496
  ):
509
497
  encoder.encode_string(to_java_field_name(field))
510
498
  context.serialize(getattr(value, field.name), None, encoder)
@@ -521,15 +509,15 @@ class DefaultValueSerializer(ValueSerializer):
521
509
 
522
510
 
523
511
  def delegate_based_serializer(
524
- delegate: Callable[[Any, Optional[str], CBOREncoder, SerializationContext], None]
512
+ delegate: Callable[[Any, Optional[str], CBOREncoder, SerializationContext], None]
525
513
  ) -> Type[ValueSerializer]:
526
514
  class DelegateBasedSerializer(ValueSerializer):
527
515
  def serialize(
528
- self,
529
- value: Any,
530
- type_name: Optional[str],
531
- encoder: CBOREncoder,
532
- context: SerializationContext,
516
+ self,
517
+ value: Any,
518
+ type_name: Optional[str],
519
+ encoder: CBOREncoder,
520
+ context: SerializationContext,
533
521
  ) -> None:
534
522
  delegate(value, type_name, encoder, context)
535
523
 
rewrite_remote/server.py CHANGED
@@ -23,8 +23,7 @@ from rewrite import (
23
23
  Recipe,
24
24
  )
25
25
  from rewrite.java import J
26
- from rewrite.java.remote.receiver import JavaReceiver
27
- from rewrite.java.remote.sender import JavaSender
26
+ from rewrite.java.remote import *
28
27
  from rewrite.python import Py
29
28
  from rewrite.python.parser import PythonParserBuilder
30
29
  from rewrite.python.remote.receiver import PythonReceiver
@@ -1,14 +0,0 @@
1
- rewrite_remote/__init__.py,sha256=uuLrPH--ewvE-5owXbNItXDfjCypMXQgsm-72hO_dtc,286
2
- rewrite_remote/client.py,sha256=95ZCAtVOngF0ZqqKnOsrweUeGKruf3UKGPXNGTrNyy0,1853
3
- rewrite_remote/event.py,sha256=texLJD1mcFkpBpiXAa-Rmip0Tgqm2OlBpRPHFZyWcBs,359
4
- rewrite_remote/receiver.py,sha256=U50jtbhmAVy361Vm5Bwd-amv19KcS8ltDRBOy2nC51E,18983
5
- rewrite_remote/remote_utils.py,sha256=wUo9WZoldgCLihFJGf6RaE1SufhDiEPCFlX74tcODVM,10552
6
- rewrite_remote/remoting.py,sha256=83Wvvj8tMCkUjOam0wWevWJeN-uHW1k9lGdoCsI0u0g,13690
7
- rewrite_remote/sender.py,sha256=pa68X6bjvCQW_25wuVtHq0ByjA6WgI1Rl3EbL8CcvX4,20003
8
- rewrite_remote/server.py,sha256=mKI9_PVvBuShoQmfqk0EhNA70CUJOtyzHB3xv-cNBYs,9413
9
- rewrite_remote/type_utils.py,sha256=oVrB0olWFSCqhmg2nTU2wrwiAU7kBCUscjwdHK7gf3Y,4219
10
- openrewrite_remote-0.13.1.dist-info/METADATA,sha256=ftw5yLi2Ff0Z4iSxfvTRuvkXuSbhYW7L7Hxwrf9Q7ms,386
11
- openrewrite_remote-0.13.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
12
- openrewrite_remote-0.13.1.dist-info/entry_points.txt,sha256=SMukuF7TPjQr3IZIcH8f98-_QBCqYSbYXYrVv-5UzRI,69
13
- openrewrite_remote-0.13.1.dist-info/top_level.txt,sha256=ansTioSZ-62aH3F2L3d1Bua0pJF4GOtgQ1PpG-CzcP0,15
14
- openrewrite_remote-0.13.1.dist-info/RECORD,,