openrewrite-remote 0.2.7__tar.gz → 0.2.9__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.
Files changed (17) hide show
  1. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/PKG-INFO +1 -1
  2. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/pyproject.toml +1 -1
  3. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/sender.py +5 -2
  4. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/type_utils.py +18 -1
  5. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/__init__.py +0 -0
  6. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/client.py +0 -0
  7. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/event.py +0 -0
  8. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/java/extensions.py +0 -0
  9. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/java/receiver.py +0 -0
  10. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/java/sender.py +0 -0
  11. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/python/extensions.py +0 -0
  12. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/python/receiver.py +0 -0
  13. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/python/sender.py +0 -0
  14. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/receiver.py +0 -0
  15. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/remote_utils.py +0 -0
  16. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/remoting.py +0 -0
  17. {openrewrite_remote-0.2.7 → openrewrite_remote-0.2.9}/rewrite/remote/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openrewrite-remote
3
- Version: 0.2.7
3
+ Version: 0.2.9
4
4
  Summary: Remoting functionality for the OpenRewrite library.
5
5
  License: Apache-2.0
6
6
  Author: Moderne Inc.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openrewrite-remote"
3
- version = "0.2.7" # This will be replaced by the GitHub Actions workflow
3
+ version = "0.2.9" # 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"
@@ -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, to_java_field_name
13
+ from rewrite.remote.type_utils import to_java_type_name, to_java_field_name, to_java_type_name_from_value
14
14
  from rewrite.visitor import TreeVisitor
15
15
 
16
16
  from . import remote_utils
@@ -229,7 +229,7 @@ class SenderContext(Generic[T]):
229
229
  if self.before is not None and self.are_equal(after, before):
230
230
  evt = DiffEvent(EventType.NoChange, None, None)
231
231
  elif self.before is None or before is None:
232
- concrete_type = to_java_type_name(type(after)) if after is not None else None
232
+ concrete_type = to_java_type_name_from_value(after) if after is not None else None
233
233
  evt = DiffEvent(EventType.Add, concrete_type, after)
234
234
  elif after is None:
235
235
  evt = DiffEvent(EventType.Delete, None, None)
@@ -387,6 +387,9 @@ class DefaultValueSerializer(ValueSerializer):
387
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
+ elif isinstance(value, bytes):
391
+ # FIXME verify that this can be deserialized
392
+ encoder.encode(value)
390
393
  else:
391
394
  ValueSerializer.write_object_using_reflection(value, type_name, False, encoder, context)
392
395
 
@@ -1,11 +1,28 @@
1
1
  import typing
2
2
  from dataclasses import Field
3
3
  from functools import lru_cache
4
- from typing import Type
4
+ from typing import Any, Type
5
+
6
+
7
+ def to_java_type_name_from_value(v: Any) -> str:
8
+ if isinstance(v, bool):
9
+ return 'java.lang.Boolean'
10
+ elif isinstance(v, int):
11
+ bit_length = v.bit_length()
12
+ if -2_147_483_648 <= v <= 2_147_483_647:
13
+ return 'java.lang.Integer'
14
+ elif -9223372036854775808 <= v <= 9223372036854775807:
15
+ return 'java.lang.Long'
16
+ else:
17
+ return 'java.lang.BigInteger'
18
+ return to_java_type_name(type(v))
5
19
 
6
20
 
7
21
  @lru_cache(maxsize=None)
8
22
  def to_java_type_name(t: typing.Type) -> str:
23
+ if t == bytes:
24
+ # FIXME can we map this somehow?
25
+ return None
9
26
  if t == bool:
10
27
  return 'java.lang.Boolean'
11
28
  if t == int: