Skip to content

Commit eacfd1f

Browse files
committed
RDBC-839 EntityToJson major refactor w/o breaking changes
1 parent 6ef3069 commit eacfd1f

File tree

7 files changed

+161
-148
lines changed

7 files changed

+161
-148
lines changed

ravendb/documents/bulk_insert_operation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from ravendb.http.server_node import ServerNode
2626
from ravendb.http.raven_command import RavenCommand
2727
from ravendb.documents.operations.misc import GetOperationStateOperation
28-
from ravendb.documents.session.entity_to_json import EntityToJson
28+
from ravendb.documents.session.entity_to_json import EntityToJsonStatic
2929
from ravendb.documents.session.document_info import DocumentInfo
3030
from ravendb.json.metadata_as_dictionary import MetadataAsDictionary
3131
from ravendb.documents.commands.batches import CommandType
@@ -322,7 +322,7 @@ def _write_string_no_escape(self, data: str) -> None:
322322

323323
def _write_document(self, entity: object, metadata: MetadataAsDictionary):
324324
document_info = DocumentInfo(metadata_instance=metadata)
325-
json_dict = EntityToJson.convert_entity_to_json_internal_static(entity, self._conventions, document_info, True)
325+
json_dict = EntityToJsonStatic.convert_entity_to_json(entity, self._conventions, document_info)
326326
self._current_data_buffer += bytearray(json.dumps(json_dict), encoding="utf-8")
327327

328328
def _ensure_ongoing_operation(self) -> None:

ravendb/documents/operations/compare_exchange/compare_exchange.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from ravendb.documents.session.document_session_operations.misc import _update_metadata_modifications
1010
from ravendb.exceptions.raven_exceptions import RavenException
1111
from ravendb.json.metadata_as_dictionary import MetadataAsDictionary
12-
from ravendb.documents.session.entity_to_json import EntityToJson
12+
from ravendb.documents.session.entity_to_json import EntityToJsonStatic
1313
from ravendb.tools.utils import Utils
1414

1515
_T = TypeVar("_T")
@@ -148,7 +148,7 @@ def get_command(
148148
if not self.__value:
149149
return None
150150

151-
entity = EntityToJson.convert_entity_to_json_internal_static(self.__value.value, conventions, None, False)
151+
entity = EntityToJsonStatic.convert_entity_to_json(self.__value.value, conventions, None, False)
152152

153153
entity_json = entity if isinstance(entity, dict) else None
154154
metadata = (
@@ -229,7 +229,7 @@ def update_value(self, value: CompareExchangeValue):
229229
self.__value.index = self._index
230230

231231
if self.__value.value is not None:
232-
EntityToJson.populate_entity_static(self.__value.value, value.value)
232+
EntityToJsonStatic.populate_entity(self.__value.value, value.value)
233233

234234
@staticmethod
235235
def prepare_metadata_for_put(

ravendb/documents/operations/compare_exchange/operations.py

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from ravendb.http.server_node import ServerNode
2020
from ravendb.http.topology import RaftCommand
2121
from ravendb.json.metadata_as_dictionary import MetadataAsDictionary
22-
from ravendb.documents.session.entity_to_json import EntityToJson
22+
from ravendb.documents.session.entity_to_json import EntityToJsonStatic
2323
from ravendb.tools.utils import Utils
2424
from ravendb.util.util import RaftIdGenerator
2525

@@ -65,14 +65,14 @@ def parse_from_string(
6565

6666
class PutCompareExchangeValueOperation(IOperation[CompareExchangeResult], Generic[_T]):
6767
def __init__(self, key: str, value: _T, index: int, metadata: MetadataAsDictionary = None):
68-
self.__key = key
69-
self.__value = value
70-
self.__index = index
71-
self.__metadata = metadata
68+
self._key = key
69+
self._value = value
70+
self._index = index
71+
self._metadata = metadata
7272

7373
def get_command(self, store: DocumentStore, conventions: DocumentConventions, cache: HttpCache) -> RavenCommand[_T]:
7474
return self.__PutCompareExchangeValueCommand(
75-
self.__key, self.__value, self.__index, self.__metadata, conventions
75+
self._key, self._value, self._index, self._metadata, conventions
7676
)
7777

7878
class __PutCompareExchangeValueCommand(RavenCommand[_T], RaftCommand, Generic[_T]):
@@ -87,43 +87,43 @@ def __init__(
8787

8888
super().__init__(CompareExchangeResult[_T])
8989

90-
self.__key = key
91-
self.__value = value
92-
self.__index = index
93-
self.__metadata = metadata
94-
self.__conventions = conventions or DocumentConventions()
90+
self._key = key
91+
self._value = value
92+
self._index = index
93+
self._metadata = metadata
94+
self._conventions = conventions or DocumentConventions()
9595

9696
def is_read_request(self) -> bool:
9797
return False
9898

9999
def create_request(self, node: ServerNode) -> requests.Request:
100-
url = f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self.__key)}&index={self.__index}"
101-
tuple = {constants.CompareExchange.OBJECT_FIELD_NAME: self.__value}
102-
json_dict = EntityToJson.convert_entity_to_json_internal_static(tuple, self.__conventions, None, False)
103-
if self.__metadata:
100+
url = f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self._key)}&index={self._index}"
101+
object_and_value = {constants.CompareExchange.OBJECT_FIELD_NAME: self._value}
102+
json_dict = EntityToJsonStatic.convert_entity_to_json(object_and_value, self._conventions, None, False)
103+
if self._metadata:
104104
metadata = CompareExchangeSessionValue.prepare_metadata_for_put(
105-
self.__key, self.__metadata, self.__conventions
105+
self._key, self._metadata, self._conventions
106106
)
107107
json_dict[constants.Documents.Metadata.KEY] = metadata
108108

109109
return requests.Request("PUT", url, data=json_dict)
110110

111111
def set_response(self, response: str, from_cache: bool) -> None:
112-
self.result = CompareExchangeResult.parse_from_string(type(self.__value), response, self.__conventions)
112+
self.result = CompareExchangeResult.parse_from_string(type(self._value), response, self._conventions)
113113

114114
def get_raft_unique_request_id(self) -> str:
115115
return RaftIdGenerator.new_id()
116116

117117

118118
class GetCompareExchangeValueOperation(IOperation[CompareExchangeValue[_T]], Generic[_T]):
119119
def __init__(self, key: str, object_type: Type[_T], materialize_metadata: bool = True):
120-
self.__key = key
121-
self.__object_type = object_type
122-
self.__materialize_metadata = materialize_metadata
120+
self._key = key
121+
self._object_type = object_type
122+
self._materialize_metadata = materialize_metadata
123123

124124
def get_command(self, store: DocumentStore, conventions: DocumentConventions, cache: HttpCache) -> RavenCommand[_T]:
125125
return self.GetCompareExchangeValueCommand(
126-
self.__key, self.__object_type, self.__materialize_metadata, conventions
126+
self._key, self._object_type, self._materialize_metadata, conventions
127127
)
128128

129129
class GetCompareExchangeValueCommand(RavenCommand[CompareExchangeValue[_T]]):
@@ -133,55 +133,55 @@ def __init__(
133133
if not key:
134134
raise ValueError("The key argument must have value")
135135
super().__init__(CompareExchangeValue[_T])
136-
self.__key = key
137-
self.__object_type = object_type
138-
self.__materialize_metadata = materialize_metadata
139-
self.__conventions = conventions
136+
self._key = key
137+
self._object_type = object_type
138+
self._materialize_metadata = materialize_metadata
139+
self._conventions = conventions
140140

141141
def is_read_request(self) -> bool:
142142
return True
143143

144144
def create_request(self, node: ServerNode) -> requests.Request:
145-
url = f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self.__key)}"
145+
url = f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self._key)}"
146146
return requests.Request("GET", url)
147147

148148
def set_response(self, response: str, from_cache: bool) -> None:
149149
self.result = CompareExchangeValueResultParser.get_value(
150-
self.__object_type, response, self.__materialize_metadata, self.__conventions
150+
self._object_type, response, self._materialize_metadata, self._conventions
151151
)
152152

153153

154154
class DeleteCompareExchangeValueOperation(IOperation[CompareExchangeResult[_T]], Generic[_T]):
155155
def __init__(self, object_type: type, key: str, index: int):
156-
self.__key = key
157-
self.__object_type = object_type
158-
self.__index = index
156+
self._key = key
157+
self._object_type = object_type
158+
self._index = index
159159

160160
def get_command(self, store: DocumentStore, conventions: DocumentConventions, cache: HttpCache) -> RavenCommand[_T]:
161-
return self.RemoveCompareExchangeCommand[_T](self.__object_type, self.__key, self.__index, conventions)
161+
return self.RemoveCompareExchangeCommand[_T](self._object_type, self._key, self._index, conventions)
162162

163163
class RemoveCompareExchangeCommand(RavenCommand[CompareExchangeResult[_T]], RaftCommand, Generic[_T]):
164164
def __init__(self, object_type: type, key: str, index: int, conventions: DocumentConventions):
165165
if not key:
166166
raise ValueError("The key must have value")
167167

168168
super().__init__(CompareExchangeResult[_T])
169-
self.__object_type = object_type
170-
self.__key = key
171-
self.__index = index
172-
self.__conventions = conventions
169+
self._object_type = object_type
170+
self._key = key
171+
self._index = index
172+
self._conventions = conventions
173173

174174
def is_read_request(self) -> bool:
175175
return True
176176

177177
def create_request(self, node: ServerNode) -> requests.Request:
178178
return requests.Request(
179179
"DELETE",
180-
f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self.__key)}&index={self.__index}",
180+
f"{node.url}/databases/{node.database}/cmpxchg?key={Utils.quote_key(self._key)}&index={self._index}",
181181
)
182182

183183
def set_response(self, response: str, from_cache: bool) -> None:
184-
self.result = CompareExchangeResult.parse_from_string(self.__object_type, response, self.__conventions)
184+
self.result = CompareExchangeResult.parse_from_string(self._object_type, response, self._conventions)
185185

186186
def get_raft_unique_request_id(self) -> str:
187187
return RaftIdGenerator.new_id()
@@ -226,34 +226,34 @@ def __init__(
226226
conventions: DocumentConventions,
227227
):
228228
super().__init__(dict)
229-
self.__operation = operation
230-
self.__materialize_metadata = materialize_metadata
231-
self.__conventions = conventions
229+
self._operation = operation
230+
self._materialize_metadata = materialize_metadata
231+
self._conventions = conventions
232232

233233
def is_read_request(self) -> bool:
234234
return True
235235

236236
def create_request(self, node: ServerNode) -> requests.Request:
237237
path_builder = [node.url, "/databases/", node.database, "/cmpxchg?"]
238238

239-
if self.__operation._keys:
240-
for key in self.__operation._keys:
239+
if self._operation._keys:
240+
for key in self._operation._keys:
241241
path_builder.append("&key=")
242242
path_builder.append(Utils.quote_key(key))
243243
else:
244-
if self.__operation._start_with:
244+
if self._operation._start_with:
245245
path_builder.append("&startsWith=")
246-
path_builder.append(Utils.quote_key(self.__operation._start_with))
247-
if self.__operation._start:
246+
path_builder.append(Utils.quote_key(self._operation._start_with))
247+
if self._operation._start:
248248
path_builder.append("&start=")
249-
path_builder.append(Utils.quote_key(self.__operation._start))
250-
if self.__operation._page_size:
249+
path_builder.append(Utils.quote_key(self._operation._start))
250+
if self._operation._page_size:
251251
path_builder.append("&pageSize=")
252-
path_builder.append(Utils.quote_key(self.__operation._page_size))
252+
path_builder.append(Utils.quote_key(self._operation._page_size))
253253

254254
return requests.Request("GET", "".join(path_builder))
255255

256256
def set_response(self, response: str, from_cache: bool) -> None:
257257
self.result = CompareExchangeValueResultParser.get_values(
258-
self.__operation._object_type, response, self.__materialize_metadata, self.__conventions
258+
self._operation._object_type, response, self._materialize_metadata, self._conventions
259259
)

ravendb/documents/operations/executor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import http
44
from typing import Union, Optional, TYPE_CHECKING, TypeVar
55

6-
from ravendb.documents.session.entity_to_json import EntityToJson
6+
from ravendb.documents.session.entity_to_json import EntityToJsonStatic
77
from ravendb.documents.operations.patch import PatchOperation, PatchStatus
88
from ravendb.documents.operations.definitions import (
99
IOperation,
@@ -90,7 +90,7 @@ def send_patch_operation_with_entity_class(
9090

9191
try:
9292
result.status = command.result.status
93-
result.document = EntityToJson.convert_to_entity_static(
93+
result.document = EntityToJsonStatic.convert_to_entity(
9494
command.result.modified_document, entity_class, self._request_executor.conventions
9595
)
9696
return result

ravendb/documents/operations/revisions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from ravendb.http.raven_command import RavenCommand
1313
from ravendb.util.util import RaftIdGenerator
1414
from ravendb.http.topology import RaftCommand
15-
from ravendb.documents.session.entity_to_json import EntityToJson
15+
from ravendb.documents.session.entity_to_json import EntityToJsonStatic
1616
from ravendb.documents.conventions import DocumentConventions
1717

1818

@@ -167,7 +167,7 @@ def set_response(self, response: Optional[str], from_cache: bool) -> None:
167167
if not revision:
168168
continue
169169

170-
entity = EntityToJson.convert_to_entity_static(
170+
entity = EntityToJsonStatic.convert_to_entity(
171171
revision, self._object_type, DocumentConventions.default_conventions()
172172
)
173173
results.append(entity)

0 commit comments

Comments
 (0)