-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support for std::list #1017
Comments
I'm willing to help you implement that. The first step is to get a file with a The next step will likely be in uproot/interpretation/identify.py, to recognize uproot5/src/uproot/interpretation/identify.py Lines 958 to 971 in ccb56b2
In the above, you can see that we use uproot5/src/uproot/containers.py Lines 1009 to 1209 in ccb56b2
and here is uproot5/src/uproot/containers.py Lines 1729 to 1782 in ccb56b2
The
The first question I should have asked you is whether your Even if it is inside of a TTree, which has more subcases, there is a minimal implementation that you can do to avoid the complex cases:
if forth_stash is not None:
context["cancel_forth"] = True
As test-driven development, you can stub the
(with some of the options turned on, >>> np.array([1, 2, 3, 4, 5], dtype=">i4").view("u1")
array([0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5],
dtype=uint8) That's very readable, even if it's embedded among some headers and strings. (Strings are easy to identify from the character interpretation lines.) Keep in mind that you want the numbers you're using as anchors to be distinguishable from the surrounding headers, which often have a lot of zeros, so pick numbers that are not zero (or one). After having said all of that, I highly suspect that the byte-serialization of For example:
where the total number of bytes in the object (which you don't need) is 22, the That's a guess, but the reason I guessed that is because it's how Good luck, and I'm available for help if you have any questions! |
Currently our collaboration keeps part of data in a TTree holding CalibEvent class type objects. The CalibEvent class holds its member in std::list, and std::list is not parsed by uproot5. It is not easy to update the software from our side since it's used by many packages.
If uproot5 can add support for std::list it would be nice. If there is not enough manpower I'd like to help, and some hints would be very useful where to start.
The text was updated successfully, but these errors were encountered: