示例#1
0
    def create_file(self, name):
        def onclose_fn(sfile):
            sfile.file.close()

        f = StructFile(DatastoreFile(key_name="%s%s" % (self.name, name)),
                       name=name,
                       onclose=onclose_fn)
        return f
示例#2
0
    def __init__(self,
                 table_file,
                 blocksize=16 * 1024,
                 compressed=0,
                 prefixcoding=False,
                 postings=False,
                 stringids=False,
                 checksize=True):
        self.table_file = table_file
        self.blocksize = blocksize

        if compressed > 0 and not has_zlib:
            raise Exception("zlib is not available: cannot compress table")
        self.compressed = compressed
        self.prefixcoding = prefixcoding

        self.haspostings = postings
        if postings:
            self.offset = 0
            self.postcount = 0
            self.lastpostid = None
            self.stringids = stringids
            self.posting_file = StructFile(tempfile.TemporaryFile())

        self.rowbuffer = []
        self.lastkey = None
        self.blockfilled = 0

        self.dir = []

        # Remember where we started writing
        self.start = table_file.tell()
        # Save space for a pointer to the directory
        table_file.write_ulong(0)
        # Save space for a pointer to the postings
        table_file.write_ulong(0)

        self.options = {
            "haspostings": postings,
            "compressed": compressed,
            "prefixcoding": prefixcoding,
            "stringids": stringids
        }
示例#3
0
文件: store.py 项目: ra2003/whoosh-2
 def open_file(self, name):
     if name not in self.files:
         raise NameError
     return StructFile(StringIO(self.files[name]))
示例#4
0
文件: store.py 项目: ra2003/whoosh-2
    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
示例#5
0
文件: store.py 项目: ra2003/whoosh-2
 def open_file(self, name, compressed=False):
     f = StructFile(open(self._fpath(name), "rb"))
     f._name = name
     return f
示例#6
0
文件: store.py 项目: ra2003/whoosh-2
 def create_file(self, name):
     f = StructFile(open(self._fpath(name), "wb"))
     f._name = name
     return f
示例#7
0
 def open_file(self, name):
     return StructFile(DatastoreFile.loadfile("%s%s" % (self.name, name)))