Skip to content

Make types of RDF operations seen from PyROOT more consistent #9023

Open
@vepadulano

Description

@vepadulano

Explain what you would like to see improved

When using RDF from PyROOT and checking the type / string representation of some RDF operation, one gets very different things depending on the operation

>>> import ROOT
>>> df = ROOT.RDataFrame(100)
>>> type(df)
<class cppyy.gbl.ROOT.RDataFrame at 0x55b7a99f15a0>
>>> type(df.Count)
<class 'cppyy.CPPOverload'>
>>> type(df.Histo1D)
<class 'functools.partial'>
>>> type(df.Report)
<class 'cppyy.CPPOverload'>
>>> type(df.Display)
<class 'cppyy.TemplateProxy'>
>>> type(df.Min)
<class 'cppyy.TemplateProxy'>
>>> df.Count
<cppyy.CPPOverload object at 0x7f4f22f32ca0>
>>> df.Histo1D
functools.partial(<bound method _histo_profile of <cppyy.gbl.ROOT.RDataFrame object at 0x55b7a9b6fb70>>, ('_OriginalHisto1D', <class cppyy.gbl.ROOT.RDF.TH1DModel at 0x55b7a88dbbb0>))
>>> df.Define
ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Define(basic_string_view<char,char_traits<char> > name, basic_string_view<char,char_traits<char> > expression)
>>> df.Filter
ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Filter(basic_string_view<char,char_traits<char> > expression, basic_string_view<char,char_traits<char> > name = "")
>>> df.Report
<cppyy.CPPOverload object at 0x7f4f22f32ca0>
>>> df.Max
ROOT::RDF::RResultPtr<double> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Max(basic_string_view<char,char_traits<char> > columnName = "")
>>> df.Min
ROOT::RDF::RResultPtr<double> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Min(basic_string_view<char,char_traits<char> > columnName = "")
>>> df.Mean
ROOT::RDF::RResultPtr<double> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Mean(basic_string_view<char,char_traits<char> > columnName = "")
>>> df.Display
ROOT::RDF::RResultPtr<ROOT::RDF::RDisplay> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Display(const vector<string>& columnList, const int& nRows = 5)
ROOT::RDF::RResultPtr<ROOT::RDF::RDisplay> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Display(basic_string_view<char,char_traits<char> > columnNameRegexp = "", const int& nRows = 5)
ROOT::RDF::RResultPtr<ROOT::RDF::RDisplay> ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>::Display(initializer_list<string> columnList, const int& nRows = 5)

It would be nice to have kind of a similar output for all operations

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions