20#include <unordered_map>
53 char fDelimiter =
',';
54 bool fLeftTrim =
false;
55 bool fRightTrim =
false;
56 bool fSkipBlankLines =
true;
57 std::int64_t fSkipFirstNLines = 0;
58 std::int64_t fSkipLastNLines = 0;
59 std::int64_t fLinesChunkSize = -1;
76 static const std::unordered_map<ColType_t, std::string>
fgColTypeMap;
82 std::uint64_t fDataPos = 0;
83 std::int64_t fDataLineNumber = 0;
84 std::int64_t fLineNumber = 0;
85 std::int64_t fMaxLineNumber = -1;
86 std::unique_ptr<ROOT::Internal::RRawFile>
fCsvFile;
90 std::unordered_map<std::string, ColType_t>
fColTypes;
104 bool Readln(std::string &
line);
106 void FillHeaders(
const std::string &);
107 void FillRecord(
const std::string &,
Record_t &);
108 void GenerateHeaders(
size_t);
109 std::vector<void *> GetColumnReadersImpl(std::string_view,
const std::type_info &)
final;
110 void ValidateColTypes(std::vector<std::string> &)
const;
111 void InferColTypes(std::vector<std::string> &);
112 void InferType(
const std::string &,
unsigned int);
113 std::vector<std::string> ParseColumns(
const std::string &);
114 size_t ParseValue(
const std::string &, std::vector<std::string> &,
size_t);
119 std::string AsString()
final;
124 std::unordered_map<std::
string,
char> &&
colTypes = {});
132 void Finalize()
final;
134 const std::vector<std::string> &GetColumnNames()
const final;
140 std::
string GetLabel()
final;
long long Long64_t
Portable signed long integer 8 bytes.
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Pure virtual base class for all column reader types.
RCsvDSColumnReader(void *valuePtr)
void * GetImpl(Long64_t) final
The RRawFile provides read-only access to local and remote files.
RDataFrame data source class for reading CSV files.
std::vector< std::vector< double > > fDoubleEvtValues
static const std::unordered_map< ColType_t, std::string > fgColTypeMap
std::vector< std::vector< void * > > fColAddresses
std::vector< std::string > fHeaders
RCsvDS & operator=(RCsvDS &&)=delete
std::unordered_map< std::string, ColType_t > fColTypes
std::vector< std::vector< Long64_t > > fLong64EvtValues
std::vector< Record_t > fRecords
std::set< std::string > fColContainingEmpty
RCsvDS(const RCsvDS &)=delete
std::unique_ptr< ROOT::Internal::RRawFile > fCsvFile
static const TRegexp fgDoubleRegex1
RCsvDS & operator=(const RCsvDS &)=delete
std::vector< std::vector< std::string > > fStringEvtValues
std::vector< std::deque< bool > > fBoolEvtValues
std::list< ColType_t > fColTypesList
RDataSource defines an API that RDataFrame can use to read arbitrary data formats.
std::vector< void * > Record_t
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
Regular expression class.
Namespace for new ROOT classes and functions.
Options that control how the CSV file is parsed.
std::vector< std::string > fColumnNames
Impose column names.
std::unordered_map< std::string, char > fColumnTypes
Specify custom column types, accepts an unordered map with keys being column name,...