Make Address readable via IdentifiedDataSerializer #449
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Formerly, we didn't implement IDS for Address as it was not needed
in the Python client but with the implementation of ReliableTopic,
it was possible to get Address instances via fields the messages
sent by the server.
To fix this, we introduce another class that inherits from the Address
and return it when someone tries to read such field. We take such measures
to deal with the cyclic import errors. If we were to implement IDS for
Address in the core module, and try to register it in the serialization
module, we would have a cyclic import.
Note that, this is basically a workaround but it is enough for our needs.
We need a proper refactoring of our modules to get rid of such problems
and maybe we can do that in 5.0.