MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / FilesArray

Class FilesArray

sorts/external_sort.py:59–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57
58
59class FilesArray:
60 def __init__(self, files):
61 self.files = files
62 self.empty = set()
63 self.num_buffers = len(files)
64 self.buffers = dict.fromkeys(range(self.num_buffers))
65
66 def get_dict(self):
67 return {
68 i: self.buffers[i] for i in range(self.num_buffers) if i not in self.empty
69 }
70
71 def refresh(self):
72 for i in range(self.num_buffers):
73 if self.buffers[i] is None and i not in self.empty:
74 self.buffers[i] = self.files[i].readline()
75
76 if self.buffers[i] == "":
77 self.empty.add(i)
78 self.files[i].close()
79
80 return len(self.empty) != self.num_buffers
81
82 def unshift(self, index):
83 value = self.buffers[index]
84 self.buffers[index] = None
85
86 return value
87
88
89class FileMerger:

Callers 1

mergeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected