Skip to content

Commit d8c68f6

Browse files
committed
Fix spacing + remove DataTable interface
1 parent d7a4389 commit d8c68f6

File tree

14 files changed

+146
-221
lines changed

14 files changed

+146
-221
lines changed

src/apps/weblib/interface.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -322,10 +322,11 @@ void Interface::addDimension(ObjectRegistryHandle chart,
322322
std::uint32_t categoryIndicesCount,
323323
bool isContiguous)
324324
{
325-
getChart(chart)->getTable().addColumn(name,
325+
getChart(chart)->getTable().add_dimension(
326326
{categories, categoriesCount},
327327
{categoryIndices, categoryIndicesCount},
328-
isContiguous);
328+
name,
329+
{{{"isContiguous", isContiguous ? "true" : "false"}}});
329330
}
330331

331332
void Interface::addMeasure(ObjectRegistryHandle chart,
@@ -334,22 +335,22 @@ void Interface::addMeasure(ObjectRegistryHandle chart,
334335
const double *values,
335336
std::uint32_t count)
336337
{
337-
getChart(chart)->getTable().addColumn(name,
338-
unit,
339-
{values, count});
338+
getChart(chart)->getTable().add_measure({values, count},
339+
name,
340+
{{std::pair{"unit", unit}}});
340341
}
341342

342343
void Interface::addRecord(ObjectRegistryHandle chart,
343344
const char *const *cells,
344345
std::uint32_t count)
345346
{
346-
getChart(chart)->getTable().pushRow({cells, count});
347+
getChart(chart)->getTable().add_record({cells, count});
347348
}
348349

349350
const char *Interface::dataMetaInfo(ObjectRegistryHandle chart)
350351
{
351352
thread_local std::string res;
352-
res = getChart(chart)->getTable().getInfos();
353+
res = getChart(chart)->getTable().as_string();
353354
return res.c_str();
354355
}
355356

src/apps/weblib/typeschema-api/data.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ definitions:
7575
like timestamps.
7676
type: boolean
7777

78-
7978
IndexDimension:
8079
$extends: SeriesBase
8180
description: Name of a dimension data series.

src/base/conv/auto_json.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,15 @@ struct JSONObj : protected JSONRepeat<'{', '}'>
336336
return std::move(*this);
337337
}
338338

339-
template <class T> JSONObj &&mergeObj(const T &obj) &&
339+
template <bool isStatic = true, class T>
340+
JSONObj &mergeObj(const T &obj)
340341
{
341342
auto pre_size = json.size();
342343

343-
staticObj(obj);
344+
if constexpr (isStatic)
345+
staticObj(obj);
346+
else
347+
dynamicObj(obj);
344348

345349
json.pop_back();
346350

@@ -351,7 +355,7 @@ struct JSONObj : protected JSONRepeat<'{', '}'>
351355
else
352356
was = true;
353357

354-
return std::move(*this);
358+
return *this;
355359
}
356360
};
357361

src/chart/generator/plotbuilder.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ void PlotBuilder::calcLegendAndLabel(const Data::DataTable &dataTable)
369369
calcLegend.title = dataCube.getName(*meas);
370370
calcLegend.measure = {std::get<0>(stats.at(type)),
371371
meas->getColIndex(),
372-
dataTable.getUnit(meas->getColIndex()),
372+
dataTable.get_series_info(meas->getColIndex(),
373+
"unit"),
373374
scale.step.getValue()};
374375
}
375376
}
@@ -410,8 +411,9 @@ void PlotBuilder::calcLegendAndLabel(const Data::DataTable &dataTable)
410411
.at(ChannelId::label)
411412
.measure())
412413
plot->axises.label = {
413-
::Anim::String{
414-
std::string{dataTable.getUnit(meas->getColIndex())}},
414+
::Anim::String{std::string{
415+
dataTable.get_series_info(meas->getColIndex(),
416+
"unit")}},
415417
::Anim::String{meas->getColIndex()}};
416418
}
417419

@@ -440,7 +442,7 @@ void PlotBuilder::calcAxis(const Data::DataTable &dataTable,
440442
else
441443
axis.measure = {std::get<0>(stats.at(type)),
442444
meas.getColIndex(),
443-
dataTable.getUnit(meas.getColIndex()),
445+
dataTable.get_series_info(meas.getColIndex(), "unit"),
444446
scale.step.getValue()};
445447
}
446448
else {

src/chart/main/events.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ class Events
224224
void appendToJSON(Conv::JSONObj &&jsonObj) const override
225225
{
226226
Element::appendToJSON(
227-
std::move(jsonObj).mergeObj(properties));
227+
std::move(jsonObj.mergeObj(properties)));
228228
}
229229
};
230230

src/dataframe/impl/dataframe.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ void dataframe::add_dimension(
204204
std::span<const char *const> dimension_categories,
205205
std::span<const std::uint32_t> dimension_values,
206206
std::string_view name,
207-
adding_type adding_strategy,
208-
std::span<const std::pair<const char *, const char *>> info) &
207+
std::span<const std::pair<const char *, const char *>> info,
208+
adding_type adding_strategy) &
209209
{
210210
change_state_to(state_type::modifying,
211211
state_modification_reason::needs_series_type);
@@ -276,8 +276,8 @@ void dataframe::add_dimension(
276276

277277
void dataframe::add_measure(std::span<const double> measure_values,
278278
std::string_view name,
279-
adding_type adding_strategy,
280-
std::span<const std::pair<const char *, const char *>> info) &
279+
std::span<const std::pair<const char *, const char *>> info,
280+
adding_type adding_strategy) &
281281
{
282282
change_state_to(state_type::modifying,
283283
state_modification_reason::needs_series_type);
@@ -656,17 +656,18 @@ std::string dataframe::as_string() const &
656656
default: error(error_type::series_not_found, name);
657657
case dimension: {
658658
const auto &[name, dim] = unsafe_get<dimension>(ser);
659-
obj("name", name)("type", "dimension")("isContiguous",
660-
dim.info.at("isContiguous"))("length",
661-
dim.values.size())("categories", dim.categories);
659+
obj("name", name)("type", "dimension")("length",
660+
dim.values.size())("categories", dim.categories)
661+
.mergeObj<false>(dim.info);
662662
break;
663663
}
664664
case measure: {
665665
const auto &[name, mea] = unsafe_get<measure>(ser);
666666
auto &&[min, max] = mea.get_min_max();
667-
obj("name", name)("type", "measure")("unit",
668-
mea.info.at("unit"))("length", mea.values.size())
669-
.nested("range")("min", min)("max", max);
667+
obj("name", name)("type", "measure")("length",
668+
mea.values.size())
669+
.nested("range")("min", min)("max", max)
670+
.mergeObj<false>(mea.info);
670671
break;
671672
}
672673
}

src/dataframe/impl/dataframe.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,17 @@ class dataframe
6969
std::span<const char *const> dimension_categories,
7070
std::span<const std::uint32_t> dimension_values,
7171
std::string_view name,
72-
adding_type adding_strategy,
73-
std::span<const std::pair<const char *, const char *>> info)
74-
&;
72+
std::span<const std::pair<const char *, const char *>> info =
73+
{},
74+
adding_type adding_strategy =
75+
adding_type::create_or_override) &;
7576

7677
void add_measure(std::span<const double> measure_values,
7778
std::string_view name,
78-
adding_type adding_strategy,
79-
std::span<const std::pair<const char *, const char *>> info)
80-
&;
79+
std::span<const std::pair<const char *, const char *>> info =
80+
{},
81+
adding_type adding_strategy =
82+
adding_type::create_or_override) &;
8183

8284
void add_series_by_other(std::string_view curr_series,
8385
std::string_view name,

src/dataframe/interface.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,26 +66,26 @@ void dataframe_interface::add_dimension(
6666
std::span<const char *const> dimension_categories,
6767
std::span<const std::uint32_t> dimension_values,
6868
std::string_view name,
69-
adding_type adding_strategy,
70-
std::span<const std::pair<const char *, const char *>> info) &
69+
std::span<const std::pair<const char *, const char *>> info,
70+
adding_type adding_strategy) &
7171
{
7272
as_impl(this).add_dimension(dimension_categories,
7373
dimension_values,
7474
name,
75-
adding_strategy,
76-
info);
75+
info,
76+
adding_strategy);
7777
}
7878

7979
void dataframe_interface::add_measure(
8080
std::span<const double> measure_values,
8181
std::string_view name,
82-
adding_type adding_strategy,
83-
std::span<const std::pair<const char *, const char *>> info) &
82+
std::span<const std::pair<const char *, const char *>> info,
83+
adding_type adding_strategy) &
8484
{
8585
as_impl(this).add_measure(measure_values,
8686
name,
87-
adding_strategy,
88-
info);
87+
info,
88+
adding_strategy);
8989
}
9090

9191
void dataframe_interface::add_series_by_other(

src/dataframe/interface.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,13 @@ class alignas(align_impl) dataframe_interface
106106
std::span<const char *const> dimension_categories,
107107
std::span<const std::uint32_t> dimension_values,
108108
std::string_view name,
109-
adding_type adding_strategy,
110-
std::span<const std::pair<const char *, const char *>> info)
111-
&;
109+
std::span<const std::pair<const char *, const char *>> info,
110+
adding_type adding_strategy) &;
112111

113112
void add_measure(std::span<const double> measure_values,
114113
std::string_view name,
115-
adding_type adding_strategy,
116-
std::span<const std::pair<const char *, const char *>> info)
117-
&;
114+
std::span<const std::pair<const char *, const char *>> info,
115+
adding_type adding_strategy) &;
118116

119117
void add_series_by_other(std::string_view curr_series,
120118
std::string_view name,

src/dataframe/old/datatable.cpp

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -27,36 +27,6 @@
2727

2828
namespace Vizzu::Data
2929
{
30-
31-
void DataTable::addColumn(std::string_view name,
32-
std::string_view unit,
33-
const std::span<const double> &values)
34-
{
35-
df.add_measure(values,
36-
name.data(),
37-
dataframe::adding_type::create_or_override,
38-
{{std::pair{"unit", unit.data()}}});
39-
}
40-
41-
void DataTable::addColumn(std::string_view name,
42-
const std::span<const char *const> &categories,
43-
const std::span<const std::uint32_t> &values,
44-
bool isContiguous)
45-
{
46-
df.add_dimension(categories,
47-
values,
48-
name.data(),
49-
dataframe::adding_type::create_or_override,
50-
{{std::pair{"contiguous", isContiguous ? "true" : "false"}}});
51-
}
52-
53-
void DataTable::pushRow(const std::span<const char *const> &cells)
54-
{
55-
df.add_record(cells);
56-
}
57-
58-
std::string DataTable::getInfos() const { return df.as_string(); }
59-
6030
bool DataCube::iterator_t::operator!=(const iterator_t &other) const
6131
{
6232
return parent != other.parent;
@@ -78,7 +48,7 @@ SeriesIndex::SeriesIndex(dataframe::series_meta_t const &meta) :
7848

7949
SeriesIndex::SeriesIndex(std::string const &str,
8050
const DataTable &table) :
81-
SeriesIndex(table.getDf().get_series_meta(str))
51+
SeriesIndex(table.get_series_meta(str))
8252
{}
8353

8454
void SeriesIndex::setAggr(const std::string &aggr)
@@ -137,7 +107,7 @@ DataCube::DataCube(const DataTable &table,
137107
auto empty = dimensions.empty() && measures.empty();
138108

139109
df = {empty ? dataframe::dataframe::create_new()
140-
: table.getDf().copy(false)};
110+
: table.copy(false)};
141111

142112
if (empty) {
143113
df->finalize();
@@ -242,17 +212,6 @@ const std::string &DataCube::getName(
242212
{seriesId.getColIndex(), seriesId.getAggr()});
243213
}
244214

245-
std::string_view DataTable::getUnit(
246-
std::string_view const &colIx) const
247-
{
248-
return df.get_series_info(colIx, "unit");
249-
}
250-
251-
bool DataTable::getIsContiguous(std::string_view const &colIx) const
252-
{
253-
return df.get_series_info(colIx, "contiguous") == "true";
254-
}
255-
256215
MarkerId DataCube::getId(const SeriesList &sl,
257216
const std::optional<std::size_t> &ll,
258217
const MultiIndex &mi) const

0 commit comments

Comments
 (0)