csvzall 0.4.0
CSV command-line tool and emerging C++ library
Loading...
Searching...
No Matches
chart_spec.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4#include <optional>
5#include <string>
6#include <vector>
7
8namespace csvzall::charts {
9
11 std::string column;
12 std::string label;
13 std::string color;
14};
15
17 std::string date_column = "date";
18 std::string value_column;
19 std::vector<ChartValueSpec> values;
20 std::string label_column;
21 std::string start_date;
22 std::string end_date;
23 std::string lookback;
24 std::string title;
25 std::string orientation = "months-horizontal";
26};
27
28struct BarSpec {
29 std::string label_column;
30 std::string value_column;
31 std::vector<ChartValueSpec> values;
32 std::string color_scheme = "sequential";
33 std::string title;
34 std::string x_label;
35 std::string y_label;
36 std::string presentation = "stacked";
37};
38
39struct LineSpec {
40 std::string x_column;
41 std::string y_column;
42 std::vector<ChartValueSpec> values;
43 std::string color_scheme = "sequential";
44 std::string series_column;
45 std::string title;
46 std::string x_label;
47 std::string y_label;
48};
49
51 std::string sql;
52 std::vector<std::string> columns;
53};
54
55struct ChartSpec {
56 std::string id;
57 std::string type;
58 std::filesystem::path input;
59 std::optional<std::filesystem::path> output;
60 bool run_on_save = false;
65};
66
68 std::filesystem::path path;
69 std::filesystem::path root;
70 std::vector<ChartSpec> charts;
71};
72
73ChartSpec MakeHeatmapChartSpec(std::string id,
74 std::filesystem::path input,
75 std::optional<std::filesystem::path> output,
76 bool run_on_save,
77 HeatmapSpec heatmap);
78ChartSpec MakeBarChartSpec(std::string id,
79 std::filesystem::path input,
80 std::optional<std::filesystem::path> output,
81 bool run_on_save,
82 BarSpec bar);
83ChartSpec MakeLineChartSpec(std::string id,
84 std::filesystem::path input,
85 std::optional<std::filesystem::path> output,
86 bool run_on_save,
87 LineSpec line);
89 std::filesystem::path input,
90 std::optional<std::filesystem::path> output,
91 bool run_on_save,
92 MarkdownTableSpec markdown_table);
93
94std::filesystem::path DefaultChartConfigPath();
95std::filesystem::path ResolveChartConfigRoot(const std::filesystem::path& config_path);
96ChartConfig LoadChartConfig(const std::filesystem::path& config_path);
97
98} // namespace csvzall::charts
99
101using ::csvzall::charts::BarSpec;
102using ::csvzall::charts::ChartConfig;
103using ::csvzall::charts::ChartSpec;
104using ::csvzall::charts::ChartValueSpec;
105using ::csvzall::charts::DefaultChartConfigPath;
106using ::csvzall::charts::HeatmapSpec;
107using ::csvzall::charts::LineSpec;
108using ::csvzall::charts::LoadChartConfig;
109using ::csvzall::charts::MakeBarChartSpec;
110using ::csvzall::charts::MakeHeatmapChartSpec;
111using ::csvzall::charts::MakeLineChartSpec;
112using ::csvzall::charts::MakeMarkdownTableChartSpec;
113using ::csvzall::charts::MarkdownTableSpec;
114using ::csvzall::charts::ResolveChartConfigRoot;
115} // namespace csvzall::pipeline::common
Definition bar.cpp:11
ChartSpec MakeMarkdownTableChartSpec(std::string id, std::filesystem::path input, std::optional< std::filesystem::path > output, bool run_on_save, MarkdownTableSpec markdown_table)
Definition chart_spec.cpp:355
ChartSpec MakeLineChartSpec(std::string id, std::filesystem::path input, std::optional< std::filesystem::path > output, bool run_on_save, LineSpec line)
Definition chart_spec.cpp:340
ChartSpec MakeBarChartSpec(std::string id, std::filesystem::path input, std::optional< std::filesystem::path > output, bool run_on_save, BarSpec bar)
Definition chart_spec.cpp:325
ChartConfig LoadChartConfig(const std::filesystem::path &config_path)
Definition chart_spec.cpp:383
std::filesystem::path ResolveChartConfigRoot(const std::filesystem::path &config_path)
Definition chart_spec.cpp:374
ChartSpec MakeHeatmapChartSpec(std::string id, std::filesystem::path input, std::optional< std::filesystem::path > output, bool run_on_save, HeatmapSpec heatmap)
Definition chart_spec.cpp:310
std::filesystem::path DefaultChartConfigPath()
Definition chart_spec.cpp:370
Definition chart_spec.hpp:100
Definition chart_spec.hpp:28
std::string color_scheme
Definition chart_spec.hpp:32
std::string value_column
Definition chart_spec.hpp:30
std::vector< ChartValueSpec > values
Definition chart_spec.hpp:31
std::string x_label
Definition chart_spec.hpp:34
std::string y_label
Definition chart_spec.hpp:35
std::string label_column
Definition chart_spec.hpp:29
std::string title
Definition chart_spec.hpp:33
std::string presentation
Definition chart_spec.hpp:36
Definition chart_spec.hpp:67
std::vector< ChartSpec > charts
Definition chart_spec.hpp:70
std::filesystem::path path
Definition chart_spec.hpp:68
std::filesystem::path root
Definition chart_spec.hpp:69
Definition chart_spec.hpp:55
MarkdownTableSpec markdown_table
Definition chart_spec.hpp:64
BarSpec bar
Definition chart_spec.hpp:62
std::optional< std::filesystem::path > output
Definition chart_spec.hpp:59
std::string type
Definition chart_spec.hpp:57
std::string id
Definition chart_spec.hpp:56
LineSpec line
Definition chart_spec.hpp:63
bool run_on_save
Definition chart_spec.hpp:60
HeatmapSpec heatmap
Definition chart_spec.hpp:61
std::filesystem::path input
Definition chart_spec.hpp:58
Definition chart_spec.hpp:10
std::string label
Definition chart_spec.hpp:12
std::string color
Definition chart_spec.hpp:13
std::string column
Definition chart_spec.hpp:11
Definition chart_spec.hpp:16
std::string value_column
Definition chart_spec.hpp:18
std::string start_date
Definition chart_spec.hpp:21
std::string lookback
Definition chart_spec.hpp:23
std::string date_column
Definition chart_spec.hpp:17
std::string orientation
Definition chart_spec.hpp:25
std::string end_date
Definition chart_spec.hpp:22
std::string label_column
Definition chart_spec.hpp:20
std::vector< ChartValueSpec > values
Definition chart_spec.hpp:19
std::string title
Definition chart_spec.hpp:24
Definition chart_spec.hpp:39
std::string x_column
Definition chart_spec.hpp:40
std::vector< ChartValueSpec > values
Definition chart_spec.hpp:42
std::string title
Definition chart_spec.hpp:45
std::string y_column
Definition chart_spec.hpp:41
std::string x_label
Definition chart_spec.hpp:46
std::string color_scheme
Definition chart_spec.hpp:43
std::string y_label
Definition chart_spec.hpp:47
std::string series_column
Definition chart_spec.hpp:44
Definition chart_spec.hpp:50
std::string sql
Definition chart_spec.hpp:51
std::vector< std::string > columns
Definition chart_spec.hpp:52