def parseindex(self, fp, data, inline): if len(data) == _prereadsize: if util.openhardlinks() and not inline: # big index, let's parse it on demand parser = lazyparser(fp) index = lazyindex(parser) nodemap = lazymap(parser) e = list(index[0]) type = gettype(e[0]) e[0] = offset_type(0, type) index[0] = e return index, nodemap, None else: data += fp.read() # call the C implementation to parse the index data index, nodemap, cache = parsers.parse_index(data, inline) return index, nodemap, cache
def parseindex(self, fp, inline): try: size = util.fstat(fp).st_size except AttributeError: size = 0 if util.openhardlinks() and not inline and size > 1000000: # big index, let's parse it on demand parser = lazyparser(fp, size) index = lazyindex(parser) nodemap = lazymap(parser) e = list(index[0]) type = gettype(e[0]) e[0] = offset_type(0, type) index[0] = e return index, nodemap, None data = fp.read() # call the C implementation to parse the index data index, nodemap, cache = parsers.parse_index(data, inline) return index, nodemap, cache