/ src / python / txtai / serialize / base.py
base.py
 1  """
 2  Serialize module
 3  """
 4  
 5  
 6  class Serialize:
 7      """
 8      Base class for Serialize instances. This class serializes data to files, streams and bytes.
 9      """
10  
11      def load(self, path):
12          """
13          Loads data from path.
14  
15          Args:
16              path: input path
17  
18          Returns:
19              deserialized data
20          """
21  
22          with open(path, "rb") as handle:
23              return self.loadstream(handle)
24  
25      def save(self, data, path):
26          """
27          Saves data to path.
28  
29          Args:
30              data: data to save
31              path: output path
32          """
33  
34          with open(path, "wb") as handle:
35              self.savestream(data, handle)
36  
37      def loadstream(self, stream):
38          """
39          Loads data from stream.
40  
41          Args:
42              stream: input stream
43  
44          Returns:
45              deserialized data
46          """
47  
48          raise NotImplementedError
49  
50      def savestream(self, data, stream):
51          """
52          Saves data to stream.
53  
54          Args:
55              data: data to save
56              stream: output stream
57          """
58  
59          raise NotImplementedError
60  
61      def loadbytes(self, data):
62          """
63          Loads data from bytes.
64  
65          Args:
66              data: input bytes
67  
68          Returns:
69              deserialized data
70          """
71  
72          raise NotImplementedError
73  
74      def savebytes(self, data):
75          """
76          Saves data as bytes.
77  
78          Args:
79              data: data to save
80  
81          Returns:
82              serialized data
83          """
84  
85          raise NotImplementedError