openrewrite-remote 0.2.3__tar.gz → 0.2.5__tar.gz
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.
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/PKG-INFO +1 -1
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/pyproject.toml +1 -1
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/remoting.py +4 -4
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/sender.py +3 -3
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/type_utils.py +18 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/__init__.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/client.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/event.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/java/extensions.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/java/receiver.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/java/sender.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/python/extensions.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/python/receiver.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/python/sender.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/receiver.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/remote_utils.py +0 -0
- {openrewrite_remote-0.2.3 → openrewrite_remote-0.2.5}/rewrite/remote/server.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "openrewrite-remote"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.5" # This will be replaced by the GitHub Actions workflow
|
4
4
|
description = "Remoting functionality for the OpenRewrite library."
|
5
5
|
authors = ["Moderne Inc. <support@moderne.io>"]
|
6
6
|
license = "Apache-2.0"
|
@@ -23,7 +23,7 @@ class RemotingContext:
|
|
23
23
|
_recipe_factories: Dict[str, Callable[[str, Dict[str, Any]], Recipe]] = {}
|
24
24
|
_value_serializers: Dict[Type, ValueSerializer] = {}
|
25
25
|
_value_deserializers: List[Tuple[Type, ValueDeserializer]] = []
|
26
|
-
_object_to_id_map: Dict[
|
26
|
+
_object_to_id_map: Dict[int, int] = {}
|
27
27
|
_id_to_object_map: Dict[int, Any] = {}
|
28
28
|
|
29
29
|
def __init__(self):
|
@@ -52,17 +52,17 @@ class RemotingContext:
|
|
52
52
|
self._client.close()
|
53
53
|
|
54
54
|
def try_get_id(self, key: Any) -> Optional[int]:
|
55
|
-
return self._object_to_id_map.get(key)
|
55
|
+
return self._object_to_id_map.get(id(key))
|
56
56
|
|
57
57
|
def add(self, value: Any) -> int:
|
58
58
|
object_id = len(self._object_to_id_map)
|
59
|
-
self._object_to_id_map[value] = object_id
|
59
|
+
self._object_to_id_map[id(value)] = object_id
|
60
60
|
self._id_to_object_map[object_id] = value
|
61
61
|
return object_id
|
62
62
|
|
63
63
|
def add_by_id(self, key: int, value: Any) -> None:
|
64
64
|
self._id_to_object_map[key] = value
|
65
|
-
self._object_to_id_map[value] = key
|
65
|
+
self._object_to_id_map[id(value)] = key
|
66
66
|
|
67
67
|
def get_object(self, key: int) -> Optional[Any]:
|
68
68
|
return self._id_to_object_map.get(key)
|
@@ -10,7 +10,7 @@ from uuid import UUID
|
|
10
10
|
import cbor2
|
11
11
|
from cbor2 import CBOREncoder
|
12
12
|
from rewrite import Tree, Markers, Marker, ParseErrorVisitor, Cursor
|
13
|
-
from rewrite.remote.type_utils import to_java_type_name
|
13
|
+
from rewrite.remote.type_utils import to_java_type_name, to_java_field_name
|
14
14
|
from rewrite.visitor import TreeVisitor
|
15
15
|
|
16
16
|
from . import remote_utils
|
@@ -336,7 +336,7 @@ class ValueSerializer(ABC):
|
|
336
336
|
|
337
337
|
for field in fields(value):
|
338
338
|
if field.name[0] == '_' and not hasattr(field.type, '__origin__') or field.type.__origin__ is not ClassVar:
|
339
|
-
encoder.encode_string(field
|
339
|
+
encoder.encode_string(to_java_field_name(field))
|
340
340
|
context.serialize(getattr(value, field.name), None, encoder)
|
341
341
|
encoder.write(BREAK_MARKER)
|
342
342
|
|
@@ -384,7 +384,7 @@ class DefaultValueSerializer(ValueSerializer):
|
|
384
384
|
for field in fields(value):
|
385
385
|
if field.name[0] == '_' and not hasattr(field.type,
|
386
386
|
'__origin__') or field.type.__origin__ is not ClassVar:
|
387
|
-
encoder.encode_string(field
|
387
|
+
encoder.encode_string(to_java_field_name(field))
|
388
388
|
context.serialize(getattr(value, field.name), None, encoder)
|
389
389
|
encoder.write(BREAK_MARKER)
|
390
390
|
else:
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import typing
|
2
|
+
from dataclasses import Field
|
2
3
|
from functools import lru_cache
|
3
4
|
from typing import Type
|
4
5
|
|
@@ -41,6 +42,8 @@ def to_java_type_name(t: typing.Type) -> str:
|
|
41
42
|
return 'org.openrewrite.python.tree.PyRightPadded'
|
42
43
|
if t.__name__ == 'PyContainer':
|
43
44
|
return 'org.openrewrite.python.tree.PyContainer'
|
45
|
+
if t.__module__.startswith('rewrite.python.markers'):
|
46
|
+
return 'org.openrewrite.python.marker.' + t.__qualname__
|
44
47
|
if t.__module__.startswith('rewrite.python.tree'):
|
45
48
|
return 'org.openrewrite.python.tree.Py$' + t.__qualname__.replace('.', '$')
|
46
49
|
if t.__module__.startswith('rewrite.marker'):
|
@@ -56,5 +59,20 @@ def to_java_type_name(t: typing.Type) -> str:
|
|
56
59
|
# raise NotImplementedError("to_java_type_name: " + str(o))
|
57
60
|
|
58
61
|
|
62
|
+
@lru_cache(maxsize=None)
|
63
|
+
def to_java_field_name(field: Field) -> str:
|
64
|
+
return __convert_snake_to_camel(field.name[1:])
|
65
|
+
|
66
|
+
|
67
|
+
def __convert_snake_to_camel(field_name: str) -> str:
|
68
|
+
# Remove leading underscore
|
69
|
+
if field_name.startswith('_'):
|
70
|
+
field_name = field_name[1:]
|
71
|
+
|
72
|
+
# Convert snake case to camel case
|
73
|
+
components = field_name.split('_')
|
74
|
+
return components[0] + ''.join(x.capitalize() for x in components[1:])
|
75
|
+
|
76
|
+
|
59
77
|
def get_type(type_name: str) -> Type:
|
60
78
|
raise NotImplementedError("get_type for: " + type_name)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|