示例#1
0
文件: TFile.py 项目: riga/uproot
    def _writeheader(self):
        cursor = uproot.write.sink.cursor.Cursor(0)
        self._fVersion = self._fVersion = 1061404
        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'
        fCompress = uproot.const.kZLIB * 100  # FIXME!
        fUnits = 4
        cursor.write_fields(self._sink, self._format2, self._fNbytesName,
                            fUnits, 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)
示例#2
0
 def write_tattfill(self, cursor, sink):
     cnt = numpy.int64(self.length_tattfill() -
                       4) | uproot.const.kByteCountMask
     vers = 2
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     cursor.write_fields(sink, self._format_tattfill,
                         self.fields["_fFillColor"],
                         self.fields["_fFillStyle"])
示例#3
0
 def write_tnamed(self, cursor, sink, name, title):
     cnt = numpy.int64(self.length_tnamed(name, title) -
                       4) | uproot.const.kByteCountMask
     vers = 1
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     self.write_tobject(cursor, sink)
     cursor.write_string(sink, name)
     cursor.write_string(sink, title)
示例#4
0
 def write_tattline(self, cursor, sink):
     cnt = numpy.int64(self.length_tattline() -
                       4) | uproot.const.kByteCountMask
     vers = 2
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     cursor.write_fields(sink, self._format_tattline,
                         self.fields["_fLineColor"],
                         self.fields["_fLineStyle"],
                         self.fields["_fLineWidth"])
示例#5
0
 def write_tlist(self, cursor, sink, values):
     cnt = numpy.int64(self.length_tlist(values) -
                       4) | uproot.const.kByteCountMask
     vers = 5
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     self.write_tobject(cursor, sink)
     cursor.write_string(sink, b"")
     cursor.write_fields(sink, self._format_tlist, len(values))
     for value in values:
         raise NotImplementedError
示例#6
0
 def write_tattaxis(self, cursor, sink, axis):
     cnt = numpy.int64(self.length_tattaxis() -
                       4) | uproot.const.kByteCountMask
     vers = 4
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     cursor.write_fields(sink, self._format_tattaxis, axis["_fNdivisions"],
                         axis["_fAxisColor"], axis["_fLabelColor"],
                         axis["_fLabelFont"], axis["_fLabelOffset"],
                         axis["_fLabelSize"], axis["_fTickLength"],
                         axis["_fTitleOffset"], axis["_fTitleSize"],
                         axis["_fTitleColor"], axis["_fTitleFont"])
示例#7
0
 def write_th1(self, cursor, sink, name):
     cnt = numpy.int64(self.length_th1(name) -
                       4) | uproot.const.kByteCountMask
     vers = 8
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     self.write_tnamed(cursor, sink, name, self.fTitle)
     self.write_tattline(cursor, sink)
     self.write_tattfill(cursor, sink)
     self.write_tattmarker(cursor, sink)
     cursor.write_fields(sink, self._format_th1_1, self.fields["_fNcells"])
     self.write_taxis(cursor, sink, self.fXaxis)
     self.write_taxis(cursor, sink, self.fYaxis)
     self.write_taxis(cursor, sink, self.fZaxis)
     cursor.write_fields(sink, self._format_th1_2,
                         self.fields["_fBarOffset"],
                         self.fields["_fBarWidth"],
                         self.fields["_fEntries"], self.fields["_fTsumw"],
                         self.fields["_fTsumw2"], self.fields["_fTsumwx"],
                         self.fields["_fTsumwx2"], self.fields["_fMaximum"],
                         self.fields["_fMinimum"],
                         self.fields["_fNormFactor"])
     self.write_tarray(cursor, sink, self.fields["_fContour"])
     self.write_tarray(cursor, sink, self.fields["_fSumw2"])
     cursor.write_string(sink, self.fields["_fOption"])
     self.write_tlist(cursor, sink, self.fields["_fFunctions"])
     if len(self.fields["_fBuffer"]) != 0:
         raise NotImplementedError
     cursor.write_fields(
         sink,
         self._format_th1_3,
         self.fields["_fBufferSize"],
         0,  # FIXME: empty fBuffer
         self.fields["_fBinStatErrOpt"],
         self.fields["_fStatOverflows"])
示例#8
0
    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")
示例#9
0
 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)
示例#10
0
    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")
示例#11
0
 def write(self, cursor, sink, name):
     cnt = numpy.int64(self.length(name) - 4) | uproot.const.kByteCountMask
     vers = 2
     cursor.write_fields(sink, self._format_cntvers, cnt, vers)
     self.write_th1(cursor, sink, name)
     self.write_tarray(cursor, sink, self.valuesarray)
示例#12
0
 def write_tarray(self, cursor, sink, values):
     cursor.write_fields(sink, self._format_tarray, len(values))
     cursor.write_array(sink, values)
示例#13
0
 def write_tobject(self, cursor, sink):
     cursor.write_fields(sink, self._format_tobject1, 1, 0,
                         uproot.const.kNotDeleted)
示例#14
0
文件: TObjString.py 项目: riga/uproot
 def write(self, cursor, sink, name):
     cnt = numpy.int64(self.length(name) - 4) | uproot.const.kByteCountMask
     vers = 1
     cursor.write_fields(sink, self._format, cnt, vers, 1, 0, uproot.const.kNotDeleted)
     cursor.write_string(sink, self.value)