add platform filter to b_manage
This commit is contained in:
2
lib/json
2
lib/json
Submodule lib/json updated: 8c391e04fe...c883fb0f17
@@ -10,11 +10,13 @@ void manageArguments(argparse::ArgumentParser& program, int argc, char** argv)
|
||||
{
|
||||
program.add_argument("-m", "--model").default_value("any").help("Filter results of the selected model)");
|
||||
program.add_argument("-s", "--score").default_value("any").help("Filter results of the score name supplied");
|
||||
program.add_argument("--platform").default_value("any").help("Filter results of the selected platform");
|
||||
program.add_argument("--complete").help("Show only results with all datasets").default_value(false).implicit_value(true);
|
||||
program.add_argument("--partial").help("Show only partial results").default_value(false).implicit_value(true);
|
||||
program.add_argument("--compare").help("Compare with best results").default_value(false).implicit_value(true);
|
||||
try {
|
||||
program.parse_args(argc, argv);
|
||||
auto platform = program.get<std::string>("platform");
|
||||
auto model = program.get<std::string>("model");
|
||||
auto score = program.get<std::string>("score");
|
||||
auto complete = program.get<bool>("complete");
|
||||
@@ -47,13 +49,14 @@ int main(int argc, char** argv)
|
||||
manageArguments(program, argc, argv);
|
||||
std::string model = program.get<std::string>("model");
|
||||
std::string score = program.get<std::string>("score");
|
||||
std::string platform = program.get<std::string>("platform");
|
||||
auto complete = program.get<bool>("complete");
|
||||
auto partial = program.get<bool>("partial");
|
||||
auto compare = program.get<bool>("compare");
|
||||
auto [rows, cols] = numRowsCols();
|
||||
if (complete)
|
||||
partial = false;
|
||||
auto manager = platform::ManageScreen(rows, cols, model, score, complete, partial, compare);
|
||||
auto manager = platform::ManageScreen(rows, cols, model, score, platform, complete, partial, compare);
|
||||
manager.doMenu();
|
||||
return 0;
|
||||
}
|
||||
|
@@ -18,8 +18,8 @@
|
||||
namespace platform {
|
||||
const std::string STATUS_OK = "Ok.";
|
||||
const std::string STATUS_COLOR = Colors::GREEN();
|
||||
ManageScreen::ManageScreen(int rows, int cols, const std::string& model, const std::string& score, bool complete, bool partial, bool compare) :
|
||||
rows{ rows }, cols{ cols }, complete{ complete }, partial{ partial }, compare{ compare }, didExcel(false), results(ResultsManager(model, score, complete, partial))
|
||||
ManageScreen::ManageScreen(int rows, int cols, const std::string& model, const std::string& score, const std::string& platform, bool complete, bool partial, bool compare) :
|
||||
rows{ rows }, cols{ cols }, complete{ complete }, partial{ partial }, compare{ compare }, didExcel(false), results(ResultsManager(model, score, platform, complete, partial))
|
||||
{
|
||||
results.load();
|
||||
openExcel = false;
|
||||
|
@@ -14,7 +14,7 @@ namespace platform {
|
||||
};
|
||||
class ManageScreen {
|
||||
public:
|
||||
ManageScreen(int rows, int cols, const std::string& model, const std::string& score, bool complete, bool partial, bool compare);
|
||||
ManageScreen(int rows, int cols, const std::string& model, const std::string& score, const std::string& platform, bool complete, bool partial, bool compare);
|
||||
~ManageScreen() = default;
|
||||
void doMenu();
|
||||
private:
|
||||
|
@@ -3,8 +3,8 @@
|
||||
#include "ResultsManager.h"
|
||||
|
||||
namespace platform {
|
||||
ResultsManager::ResultsManager(const std::string& model, const std::string& score, bool complete, bool partial) :
|
||||
path(Paths::results()), model(model), scoreName(score), complete(complete), partial(partial), maxModel(0), maxTitle(0)
|
||||
ResultsManager::ResultsManager(const std::string& model, const std::string& score, const std::string& platform, bool complete, bool partial) :
|
||||
path(Paths::results()), model(model), scoreName(score), platform(platform), complete(complete), partial(partial), maxModel(0), maxTitle(0)
|
||||
{
|
||||
}
|
||||
void ResultsManager::load()
|
||||
@@ -17,7 +17,11 @@ namespace platform {
|
||||
auto result = Result();
|
||||
result.load(path, filename);
|
||||
bool addResult = true;
|
||||
if (model != "any" && result.getModel() != model || scoreName != "any" && scoreName != result.getScoreName() || complete && !result.isComplete() || partial && result.isComplete())
|
||||
if (platform != "any" && result.getPlatform() != platform
|
||||
|| model != "any" && result.getModel() != model
|
||||
|| scoreName != "any" && scoreName != result.getScoreName()
|
||||
|| complete && !result.isComplete()
|
||||
|| partial && result.isComplete())
|
||||
addResult = false;
|
||||
if (addResult) {
|
||||
files.push_back(result);
|
||||
|
@@ -18,7 +18,7 @@ namespace platform {
|
||||
};
|
||||
class ResultsManager {
|
||||
public:
|
||||
ResultsManager(const std::string& model, const std::string& score, bool complete, bool partial);
|
||||
ResultsManager(const std::string& model, const std::string& score, const std::string& platform, bool complete, bool partial);
|
||||
void load(); // Loads the list of results
|
||||
void sortResults(SortField field, SortType type); // Sorts the list of results
|
||||
void sortDate(SortType type);
|
||||
@@ -38,6 +38,7 @@ namespace platform {
|
||||
std::string path;
|
||||
std::string model;
|
||||
std::string scoreName;
|
||||
std::string platform;
|
||||
bool complete;
|
||||
bool partial;
|
||||
int maxModel;
|
||||
|
@@ -26,6 +26,7 @@ namespace platform {
|
||||
std::string getTitle() const { return data["title"].get<std::string>(); };
|
||||
double getDuration() const { return data["duration"]; };
|
||||
std::string getModel() const { return data["model"].get<std::string>(); };
|
||||
std::string getPlatform() const { return data["platform"].get<std::string>(); };
|
||||
std::string getScoreName() const { return data["score_name"].get<std::string>(); };
|
||||
bool isComplete() const { return complete; };
|
||||
json getData() const { return data; }
|
||||
|
Reference in New Issue
Block a user