(self, filename, sort_key=None)
| 112 | self.block_size = block_size |
| 113 | |
| 114 | def sort(self, filename, sort_key=None): |
| 115 | num_blocks = self.get_number_blocks(filename, self.block_size) |
| 116 | splitter = FileSplitter(filename) |
| 117 | splitter.split(self.block_size, sort_key) |
| 118 | |
| 119 | merger = FileMerger(NWayMerge()) |
| 120 | buffer_size = self.block_size / (num_blocks + 1) |
| 121 | merger.merge(splitter.get_block_filenames(), filename + '.out', buffer_size) |
| 122 | |
| 123 | splitter.cleanup() |
| 124 | |
| 125 | def get_number_blocks(self, filename, block_size): |
| 126 | return (os.stat(filename).st_size / block_size) + 1 |
no test coverage detected