from nanome._internal import serializer_fields
[docs]class AdvancedSettings(serializer_fields.TypeSerializer):
[docs] def version(self):
return 0
[docs] def name(self):
return "AdvancedSettings"
[docs] def serialize(self, version, value, data):
pass
[docs] def deserialize(self, version, data):
return None
[docs]class Connect(serializer_fields.TypeSerializer):
def __init__(self):
self.__dictionary = serializer_fields.DictionaryField()
self.__dictionary.set_types(serializer_fields.StringField(), serializer_fields.ByteField())
[docs] def version(self):
return 0
[docs] def name(self):
return "Connect"
[docs] def serialize(self, version, value, data):
data.write_byte(value[0])
data.write_using_serializer(self.__dictionary, value[1])
[docs] def deserialize(self, version, data):
version_table = data.read_using_serializer(self.__dictionary)
return version_table
[docs]class Run(serializer_fields.TypeSerializer):
[docs] def version(self):
return 0
[docs] def name(self):
return "Run"
[docs] def serialize(self, version, value, data):
pass
[docs] def deserialize(self, version, data):
return None
[docs]class OpenURL(serializer_fields.TypeSerializer):
def __init__(self):
self.string = serializer_fields.StringField()
[docs] def version(self):
return 1
[docs] def name(self):
return "OpenURL"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self.string, value[0]) # URL
if version >= 1:
context.write_bool(value[1]) # Desktop Browser
[docs] def deserialize(self, version, context):
raise NotImplementedError