encoders package¶
encoder module¶
-
class
mindreader.drivers.encoders.encoder.Encoder(encoder_type: str)¶ Bases:
objectAllows to encode/decode user and snapshot objects. This class serves as an interface to the available encoders.
To add a new encoder, add a file named <name>_encoder.py to the current-package, with a class named <name>Encoder, which has an attribute named ‘encoder_type’ (string), that indicates the encoding method of this class. It should implement the functions below.
-
message_decode(encoded_user_and_snapshot) -> (<class 'mindreader.objects.user.User'>, <class 'mindreader.objects.snapshot.Snapshot'>)¶ Deserialize user and snapshot, returns a tuple.
-
message_encode(user: mindreader.objects.user.User, snapshot: mindreader.objects.snapshot.Snapshot)¶ Serialize user and snapshot together.
-
snapshot_decode(encoded_snapshot) → mindreader.objects.snapshot.Snapshot¶ Deserialize snapshot object.
-
snapshot_encode(snapshot)¶ Serialize snapshot object.
-
user_decode(encoded_user) → mindreader.objects.user.User¶ Deserialize user object.
-
user_encode(user: mindreader.objects.user.User)¶ Serialize user object.
-
-
mindreader.drivers.encoders.encoder.load_encoders()¶ Loads dynamically all the available encoders.
-
mindreader.drivers.encoders.encoder.supported_encoders= {'json': <class 'encoders.json_encoder.JSONEncoder'>, 'protobuf': <class 'encoders.pb_encoder.PBEncoder'>}¶ Mapping of the supported encoders, loaded dynamically. Currently available: Json - ‘json’ Protobuf - ‘protobuf’
json_encoder module¶
-
class
mindreader.drivers.encoders.json_encoder.JSONEncoder¶ Bases:
objectEncodes user and snapshot objects using JSON. For snapshot encoding, the snapshot must not contain binary data, or any non JSON-friendly type (except the snapshot self classes).
-
encoder_type= 'json'¶
-
message_decode(json_message) -> (<class 'mindreader.objects.user.User'>, <class 'mindreader.objects.snapshot.Snapshot'>)¶
-
message_encode(user: mindreader.objects.user.User, snapshot: mindreader.objects.snapshot.Snapshot)¶
-
snapshot_decode(json_snapshot) → mindreader.objects.snapshot.Snapshot¶
-
snapshot_encode(snapshot: mindreader.objects.snapshot.Snapshot) → str¶
-
user_decode(json_user: str) → mindreader.objects.user.User¶
-
user_encode(user: mindreader.objects.user.User) → str¶
-
pb_encoder module¶
-
class
mindreader.drivers.encoders.pb_encoder.PBEncoder¶ Bases:
objectEncodes user and snapshot objects using protobuf.
-
encoder_type= 'protobuf'¶
-
message_decode(message_bytes) -> (<class 'mindreader.objects.user.User'>, <class 'mindreader.objects.snapshot.Snapshot'>)¶
-
message_encode(user: mindreader.objects.user.User, snapshot: mindreader.objects.snapshot.Snapshot)¶
-
snapshot_decode(snapshot_bytes: bytes) → mindreader.objects.snapshot.Snapshot¶
-
snapshot_encode(snapshot: mindreader.objects.snapshot.Snapshot) → bytes¶
-
user_decode(user_bytes: bytes) → mindreader.objects.user.User¶
-
user_encode(user: mindreader.objects.user.User) → bytes¶
-