def _writeheader(self): cursor = uproot.write.sink.cursor.Cursor(0) self._fVersion = self._fVersion = 1061800 self._fBEGIN = 100 cursor.write_fields(self._sink, self._format1, b"root", self._fVersion, self._fBEGIN) self._fEND = 0 self._fSeekFree = 0 self._fNbytesFree = 0 self._nfree = 0 self._endcursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_end, self._fEND, self._fSeekFree, self._fNbytesFree, self._nfree) self._fNbytesName = 2 * len( self._filename ) + 36 + 8 # + 8 because two fields in TKey are 'q' rather than 'i' fUnits = 4 cursor.write_fields(self._sink, self._format2, self._fNbytesName, fUnits) self._compresscursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format3, self._fCompress) self._fSeekInfo = 0 self._seekcursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_seekinfo, self._fSeekInfo) self._fNbytesInfo = 0 self._nbytescursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_nbytesinfo, self._fNbytesInfo) cursor.write_data(self._sink, b'\x00\x01' + uuid.uuid1().bytes)
def write(self, cursor, sink): self.cursor = uproot.write.sink.cursor.Cursor(cursor.index) self.sink = sink self.update() cursor.skip(self._format1.size) cursor.write_string(sink, self.fClassName) cursor.write_string(sink, self.fName) cursor.write_string(sink, self.fTitle) basketversion = 3 cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.fLast) cursor.write_data(sink, b"\x00")
def write_taxis(self, cursor, sink, axis): cnt = numpy.int64(self.length_taxis(axis) - 4) | uproot.const.kByteCountMask vers = 10 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_tnamed(cursor, sink, axis["_fName"], axis["_fTitle"]) self.write_tattaxis(cursor, sink, axis) cursor.write_fields(sink, self._format_taxis_1, axis["_fNbins"], axis["_fXmin"], axis["_fXmax"]) self.write_tarray(cursor, sink, axis["_fXbins"]) if axis["_fFirst"] != 0 or axis["_fLast"] != 0 or axis[ "_fBits2"] != 0 or axis[ "_fTimeDisplay"] or axis["_fTimeFormat"] != b"" or axis[ "_fLabels"] or axis["_fModLabs"]: raise NotImplementedError cursor.write_data(sink, b"\x00" * 20)
def _writestreamers(self): self._fSeekInfo = self._fSeekFree self._seekcursor.update_fields(self._sink, self._format_seekinfo, self._fSeekInfo) cursor = uproot.write.sink.cursor.Cursor(self._fSeekInfo) streamerkey = uproot.write.TKey.TKey32(fClassName = b"TList", fName = b"StreamerInfo", fTitle = b"Doubly linked list", fObjlen = len(uproot.write.streamers.streamers), fSeekKey = self._fSeekInfo, fSeekPdir = self._fBEGIN) streamerkey.write(cursor, self._sink) cursor.write_data(self._sink, uproot.write.streamers.streamers) self._fNbytesInfo = streamerkey.fNbytes self._nbytescursor.update_fields(self._sink, self._format_nbytesinfo, self._fNbytesInfo) self._expandfile(cursor)
def write(self, cursor, sink, isjagged=False): self.cursor = uproot.write.sink.cursor.Cursor(cursor.index) self.sink = sink self.update() cursor.skip(self._format1.size) cursor.write_string(sink, self.fClassName) cursor.write_string(sink, self.fName) cursor.write_string(sink, self.fTitle) basketversion = 3 if isjagged: if self.old_fLast == 0: raise Exception("isjagged flag should be False") cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.old_fLast) else: cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.fLast) self.old_fLast = self.fLast cursor.write_data(sink, b"\x00")
def write(self, cursor, sink): cursor.write_string(sink, self.fName) cursor.write_data(sink, b"\x00") self.cursor = uproot.write.sink.cursor.Cursor(cursor.index) self.sink = sink self.update() cursor.skip(self._format1.size) cursor.write_data(self.sink, self.fUUID) cursor.write_data(sink, b"\x00" * 12) # FIXME! what is this?