Source code for nanome.api.files.messages

from nanome._internal import serializer_fields
from nanome.util import FileError
from nanome.api import structure


[docs]class CD(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "cd"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): return FileError.safe_cast(context.read_int())
[docs]class CP(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "cp"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value[0]) context.write_using_serializer(self.__string, value[1])
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class ExportFilesItem(serializer_fields.TypeSerializer): def __init__(self): self.__complex = structure.serializers.ComplexSerializer() self.__string = serializer_fields.StringField() self.__dict = serializer_fields.DictionaryField() self.__dict.set_types(serializer_fields.LongField(), structure.serializers.AtomSerializer())
[docs] def version(self): return 0
[docs] def name(self): return "ExportFilesItem"
[docs] def serialize(self, version, value, context): if isinstance(value, structure.models._Complex): context.write_byte(1) subcontext = context.create_sub_context() subcontext.payload["Atom"] = {} subcontext.write_using_serializer(self.__complex, value) context.write_using_serializer( self.__dict, subcontext.payload["Atom"]) context.write_bytes(subcontext.to_array()) elif isinstance(value, int): context.write_byte(0) context.write_long(value) else: raise TypeError( 'Trying to serialize an unsupported type for export files')
[docs] def deserialize(self, version, context): result_type = context.read_byte() if result_type == 0: return context.read_using_serializer(self.__string) elif result_type == 1: res = context.read_byte_array() if len(res) == 0: return None return res
[docs]class ExportFiles(serializer_fields.TypeSerializer): def __init__(self): self.__array = serializer_fields.ArrayField() self.__array.set_type(ExportFilesItem())
[docs] def version(self): return 0
[docs] def name(self): return "ExportFiles"
[docs] def serialize(self, version, value, context): context.write_byte(int(value[0])) if (value[1] != None): context.write_bool(True) context.write_using_serializer(self.__array, value[1]) else: context.write_bool(False)
[docs] def deserialize(self, version, context): return context.read_using_serializer(self.__array)
[docs]class FileMeta(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "FileMeta"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value.name) context.write_long(value.size) context.write_using_serializer(self.__string, value.date_modified) context.write_bool(value.is_directory)
[docs] def deserialize(self, version, context): result = FileMeta() result.name = context.read_using_serializer(self.__string) result.size = context.read_long() result.date_modified = context.read_using_serializer(self.__string) result.is_directory = context.read_bool() return result
[docs]class Get(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "get"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): from nanome.util import FileError error_code = FileError(context.read_int()) length = context.read_uint() file = context.read_bytes(length) return (error_code, file)
[docs]class LS(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField() self.__array = serializer_fields.ArrayField() self.__array.set_type(FileMeta())
[docs] def version(self): return 0
[docs] def name(self): return "ls"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): from nanome.util import FileError error_code = FileError.safe_cast(context.read_int()) filemetas = context.read_using_serializer(self.__array) return error_code, filemetas
[docs]class MKDir(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "mkdir"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class MV(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "mv"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value[0]) context.write_using_serializer(self.__string, value[1])
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class Put(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "put"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value[0]) context.write_uint(len(value[1])) context.write_bytes(value[1])
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class PWD(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "pwd"
[docs] def serialize(self, version, value, context): pass
[docs] def deserialize(self, version, context): from nanome.util import FileError error_code = FileError.safe_cast(context.read_int()) path = context.read_using_serializer(self.__string) return (error_code, path)
[docs]class RM(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "rm"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class RMDir(serializer_fields.TypeSerializer): def __init__(self): self.__string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "rmdir"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value)
[docs] def deserialize(self, version, context): from nanome.util import FileError return FileError.safe_cast(context.read_int())
[docs]class DirectoryRequest(serializer_fields.TypeSerializer): # Deprecated def __init__(self): self.__string = serializer_fields.StringField() self.__directory_entry_array = serializer_fields.ArrayField() self.__directory_entry_array.set_type(serializer_fields.DirectoryEntryField())
[docs] def version(self): return 0
[docs] def name(self): return "Directory"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string, value._directory_name) context.write_using_serializer(self.__string, value._pattern)
[docs] def deserialize(self, version, context): from nanome.util import DirectoryRequestResult, DirectoryErrorCode result = DirectoryRequestResult() result.entry_array = context.read_using_serializer( self.__directory_entry_array) result.error_code = DirectoryErrorCode(context.read_int()) return result
[docs]class FileRequest(serializer_fields.TypeSerializer): # Deprecated def __init__(self): self.__string_array = serializer_fields.ArrayField() self.__string_array.set_type(serializer_fields.StringField()) self.__file_data_array = serializer_fields.ArrayField() self.__file_data_array.set_type(serializer_fields.FileDataField())
[docs] def version(self): return 0
[docs] def name(self): return "FileRequest"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__string_array, value)
[docs] def deserialize(self, version, context): return context.read_using_serializer(self.__file_data_array)
[docs]class FileSave(serializer_fields.TypeSerializer): # Deprecated def __init__(self): self.__file_data_array = serializer_fields.ArrayField() self.__file_data_array.set_type(serializer_fields.FileSaveDataField())
[docs] def version(self): return 0
[docs] def name(self): return "FileSave"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.__file_data_array, value)
[docs] def deserialize(self, version, context): return context.read_using_serializer(self.__file_data_array)
[docs]class LoadFileInfo(serializer_fields.TypeSerializer): def __init__(self): self.string = serializer_fields.StringField()
[docs] def version(self): return 0
[docs] def name(self): return "LoadFileInfo"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.string, value[0]) context.write_byte_array(value[1])
[docs] def deserialize(self, version, context): raise NotImplementedError
[docs]class LoadFile(serializer_fields.TypeSerializer): def __init__(self): self.array = serializer_fields.ArrayField() self.array.set_type(LoadFileInfo())
[docs] def version(self): return 0
[docs] def name(self): return "LoadFile"
[docs] def serialize(self, version, value, context): context.write_using_serializer(self.array, value[0]) context.write_bool(value[1]) context.write_bool(value[2])
[docs] def deserialize(self, version, context): raise NotImplementedError
[docs]class LoadFileDoneInfo(serializer_fields.TypeSerializer):
[docs] def version(self): return 0
[docs] def name(self): return "LoadFileDoneInfo"
[docs] def serialize(self, version, value, context): raise NotImplementedError
[docs] def deserialize(self, version, context): from nanome.util.file import LoadInfoDone from nanome.util.enums import LoadFileErrorCode result = LoadInfoDone() result.success = LoadFileErrorCode(context.read_byte()) return result
[docs]class LoadFileDone(serializer_fields.TypeSerializer): def __init__(self): self.array = serializer_fields.ArrayField() self.array.set_type(LoadFileDoneInfo())
[docs] def version(self): return 0
[docs] def name(self): return "LoadFileDone"
[docs] def serialize(self, version, value, context): raise NotImplementedError
[docs] def deserialize(self, version, context): return context.read_using_serializer(self.array)
# classes