-
Notifications
You must be signed in to change notification settings - Fork 92
Open
Labels
featureNew feature or requestNew feature or request
Description
Question
Is there an existing extending mechanism for already existing RNTuples in root files?
Versions
- Python: 3.13.12
- Uproot: 5.7.1
- Awkward: 2.8.12
- Numpy: 2.4.2
File Creation
I have created a RNTuple in a file as described in the docs:
with uproot.recreate("example.root") as file:
data = {"my_int": [1,2], "my_vector": [[1,2], [3,4,5]]}
rntuple = file.mkrntuple("my_rntuple", data)RNTuple extending
Now I would like to later reopen this file and extend the RNTuple:
with uproot.open("example.root:my_rntuple") as rntuple:
data = {"my_int": [1,2], "my_vector": [[1,2], [3,4,5]]}
rntuple.extend(data)This results in
AttributeError: 'Model_ROOT_3a3a_RNTuple' object has no attribute 'extend'I also tried to use uproot.update:
with uproot.update("example.root") as file:
data = {"my_int": [1,2], "my_vector": [[1,2], [3,4,5]]}
rntuple = file["my_rntuple"]
rntuple.extend(data)This results in
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[61], line 3
1 with uproot.update("example.root") as file:
2 data = {"my_int": [1,2], "my_vector": [[1,2], [3,4,5]]}
----> 3 rntuple = file["my_rntuple"]
4 rntuple.extend(data)
File [\Lib\site-packages\uproot\writing\writable.py:983](Lib/site-packages/uproot/writing/writable.py#line=982), in WritableDirectory.__getitem__(self, where)
981 if self._file.sink.closed:
982 raise ValueError("cannot get data from a closed file")
--> 983 return self._get_del_search(where, True)
File [\Lib\site-packages\uproot\writing\writable.py:976](Lib/site-packages/uproot/writing/writable.py#line=975), in WritableDirectory._get_del_search(self, where, isget)
973 item, cycle = where, None
975 if isget:
--> 976 return self._get(item, cycle)
977 else:
978 return self._del(item, cycle)
File [\Lib\site-packages\uproot\writing\writable.py:1020](Lib/site-packages/uproot/writing/writable.py#line=1019), in WritableDirectory._get(self, name, cycle)
1018 return self._file._get_ntuple(key.seek_location)
1019 else:
-> 1020 raise TypeError(
1021 "WritableDirectory cannot view preexisting RNTuple; open the file with uproot.open instead of uproot.recreate or uproot.update"
1022 )
1024 else:
1026 def get_chunk(start, stop):
TypeError: WritableDirectory cannot view preexisting RNTuple; open the file with uproot.open instead of uproot.recreate or uproot.updateReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request
Type
Projects
Status
Todo