Unify the two backends
gordonwatts opened this issue · comments
Some differences observed during this work that should be unified (this needs to be turned into some issues in the xaod
and uproot
backends):
- Uproot can deal with linq type ast's (like
(Select xxx
) and xAOD needs(call Select xxx
. Further, the xAOD backend crashes in a rather subtle way if it isn't given the right version. For xAOD background you can't callqastle.insert_linq_nodes
first. - the
uproot
backend can deal with a dictionary as a final input to the ntupler, taking column names from the dictionaries names. The xAOD cannot. - Neither backend can deal with dictionaries in the middle of the code (that get made and then destroyed)
- The
xAOD
backend needs an AsROOTTtree as a final call, theuproot
backend does not. Should decide if different output types should be produced by the transformers and if not, then both should look like theuproot
backend. - Parquet files are made by the uproot backend and not root files, and vice versa. Should this be normalized somewhere in servicex's infrastructure?
- Should we be able to tell what endpoint is serving what type of backend by querying it?
This needs to be combined with any input from the testing that is done in the servicex backend tests repo.