Beispiel #1
0
    def _flush_run(self):
        # Called when the memory buffer (of size self.limit) fills up.
        # Sorts the buffer and writes the current buffer to a "run" on disk.

        if self.size > 0:
            tempfd, tempname = tempfile.mkstemp(".whooshrun")
            runfile = StructFile(os.fdopen(tempfd, "w+b"))

            self.postings.sort()
            for p in self.postings:
                runfile.write_string2(p)
            runfile.flush()
            runfile.seek(0)

            self.runs.append((runfile, self.count))
            self.tempfilenames.append(tempname)
            #print "Flushed run:", self.runs

            self.postings = []
            self.size = 0
            self.count = 0
Beispiel #2
0
    def _flush_run(self):
        # Called when the memory buffer (of size self.limit) fills up.
        # Sorts the buffer and writes the current buffer to a "run" on disk.

        if self.size > 0:
            tempfd, tempname = tempfile.mkstemp(".whooshrun")
            runfile = StructFile(os.fdopen(tempfd, "w+b"))

            self.postings.sort()
            for p in self.postings:
                runfile.write_string2(p)
            runfile.flush()
            runfile.seek(0)

            self.runs.append((runfile, self.count))
            self.tempfilenames.append(tempname)
            #print "Flushed run:", self.runs

            self.postings = []
            self.size = 0
            self.count = 0
Beispiel #3
0
 def open_file(self, name, *args, **kwargs):
     f = StructFile(open(self._fpath(name), "rb"), *args, **kwargs)
     f._name = name
     return f
Beispiel #4
0
 def create_file(self, name):
     f = StructFile(open(self._fpath(name), "wb"), name=name,
                    mapped=self.mapped)
     return f
Beispiel #5
0
 def open_file(self, name, *args, **kwargs):
     if name not in self.files:
         raise NameError
     return StructFile(StringIO(self.files[name]), *args, **kwargs)
Beispiel #6
0
 def create_file(self, name):
     def onclose_fn(sfile):
         self.files[name] = sfile.file.getvalue()
     f = StructFile(StringIO(), name=name, onclose=onclose_fn)
     return f
Beispiel #7
0
 def open_file(self, name, *args, **kwargs):
     f = StructFile(open(self._fpath(name), "rb"), *args, **kwargs)
     f._name = name
     return f