예제 #1
0
파일: TH.py 프로젝트: scikit-hep/uproot3
 def _put_tnamed(self, cursor, name, title):
     copy_cursor = copy(cursor)
     cursor.skip(self._format_cntvers.size)
     vers = 1
     buff = (self._put_tobject(cursor) + cursor.put_string(name) +
             cursor.put_string(title))
     length = len(buff) + self._format_cntvers.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     return copy_cursor.put_fields(self._format_cntvers, cnt, vers) + buff
예제 #2
0
파일: TH.py 프로젝트: scikit-hep/uproot3
 def _put_th1(self, cursor, name):
     copy_cursor = copy(cursor)
     cursor.skip(self._format_cntvers.size)
     vers = 8
     if len(self._fields["_fBuffer"]) != 0:
         raise NotImplementedError
     buff = (
         self._put_tnamed(cursor, name, self._fTitle) +
         self._put_tattline(cursor) + self._put_tattfill(cursor) +
         self._put_tattmarker(cursor) +
         cursor.put_fields(self._format_th1_1, self._fields["_fNcells"]) +
         self._put_taxis(cursor, self._fXaxis) +
         self._put_taxis(cursor, self._fYaxis) +
         self._put_taxis(cursor, self._fZaxis) + cursor.put_fields(
             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._put_tarray(cursor, self._fields["_fContour"]) +
         self._put_tarray(cursor, self._fields["_fSumw2"]) +
         cursor.put_string(self._fields["_fOption"]) +
         self._put_tlist(cursor, self._fields["_fFunctions"]) +
         cursor.put_fields(
             self._format_th1_3,
             self._fields["_fBufferSize"],
             0,  # FIXME: empty fBuffer
             self._fields["_fBinStatErrOpt"],
             self._fields["_fStatOverflows"]))
     length = len(buff) + self._format_cntvers.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     return copy_cursor.put_fields(self._format_cntvers, cnt, vers) + buff
예제 #3
0
파일: TH.py 프로젝트: scikit-hep/uproot3
 def _put_tobjstring(self, cursor, value, bit=0):
     copy_cursor = copy(cursor)
     cursor.skip(self._format_tobjstring.size)
     vers = 1
     buff = cursor.put_string(value)
     length = len(buff) + self._format_tobjstring.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     return copy_cursor.put_fields(self._format_tobjstring, cnt, vers, 1,
                                   bit, numpy.uint32(0x03000000)) + buff
예제 #4
0
 def _write(self, context, cursor, name, compression, key, keycursor, util):
     copy_cursor = copy(cursor)
     write_cursor = copy(cursor)
     cursor.skip(self._format.size)
     vers = 1
     buff = cursor.put_string(self.value)
     length = len(buff) + self._format.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     givenbytes = copy_cursor.put_fields(self._format, cnt, vers, 1, 0,
                                         uproot3.const.kNotDeleted) + buff
     uproot3.write.compress.write(context, write_cursor, givenbytes,
                                  compression, key, keycursor)
예제 #5
0
파일: TH.py 프로젝트: scikit-hep/uproot3
 def _put_tlist(self, cursor, values):
     copy_cursor = copy(cursor)
     cursor.skip(self._format_cntvers.size)
     vers = 5
     buff = b""
     givenbytes = (self._put_tobject(cursor) + cursor.put_string(b"") +
                   cursor.put_fields(self._format_tlist1, len(values)))
     for value in values:
         buff += self.util.put_objany(cursor, (value, "TObjString"),
                                      self.keycursor)
         buff += cursor.put_fields(self._format_tlist2, 0)
         buff += b""  # cursor.bytes(source, n)
     givenbytes += buff
     length = len(givenbytes) + self._format_cntvers.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     return copy_cursor.put_fields(self._format_cntvers, cnt,
                                   vers) + givenbytes
예제 #6
0
파일: TH.py 프로젝트: scikit-hep/uproot3
 def _put_taxis(self, cursor, axis):
     copy_cursor = copy(cursor)
     cursor.skip(self._format_cntvers.size)
     vers = 10
     buff = (
         self._put_tnamed(cursor, axis["_fName"], axis["_fTitle"]) +
         self._put_tattaxis(cursor, axis) +
         cursor.put_fields(self._format_taxis_1, axis["_fNbins"],
                           axis["_fXmin"], axis["_fXmax"]) +
         self._put_tarray(cursor, axis["_fXbins"]) + cursor.put_fields(
             self._format_taxis_2, axis["_fFirst"], axis["_fLast"],
             axis["_fBits2"], axis["_fTimeDisplay"]) +
         cursor.put_string(axis["_fTimeFormat"]) + self.util.put_objany(
             cursor, (axis["_fLabels"], "THashList"), self.keycursor) +
         self.util.put_objany(cursor,
                              (axis["_fModLabs"], "TList"), self.keycursor))
     length = len(buff) + self._format_cntvers.size
     cnt = numpy.int64(length - 4) | uproot3.const.kByteCountMask
     return copy_cursor.put_fields(self._format_cntvers, cnt, vers) + buff