Program Listing for File dump_config_csv.hpp¶
↰ Return to documentation for file (include/dish2/config/dump_config_csv.hpp)
#pragma once
#ifndef DISH2_CONFIG_DUMP_CONFIG_CSV_HPP_INCLUDE
#define DISH2_CONFIG_DUMP_CONFIG_CSV_HPP_INCLUDE
#include <string>
#include "../../../third-party/conduit/include/uitsl/mpi/comm_utils.hpp"
#include "../../../third-party/Empirical/include/emp/base/macros.hpp"
#include "../../../third-party/Empirical/include/emp/data/DataFile.hpp"
#include "../../../third-party/Empirical/include/emp/tools/keyname_utils.hpp"
#include "../../../third-party/Empirical/include/emp/tools/string_utils.hpp"
#include "../utility/mkdir_exists_ok.hpp"
#include "../utility/pare_keyname_filename.hpp"
#include "cfg.hpp"
#include "get_endeavor.hpp"
#include "get_repro.hpp"
#include "get_slurm_job_id.hpp"
namespace dish2 {
void dump_config_csv() {
auto keyname_attributes = emp::keyname::unpack_t{
{"a", "asconfigured"},
{"proc", emp::to_string( uitsl::get_proc_id() ) },
{"source", EMP_STRINGIFY(DISHTINY_HASH_)},
{"ext", ".csv"}
};
if ( dish2::get_repro() ) keyname_attributes[ "repro" ] = *dish2::get_repro();
dish2::mkdir_exists_ok( "./outmeta" );
const std::string outname = dish2::pare_keyname_filename(
emp::keyname::pack( keyname_attributes ), "outmeta/"
);
const std::string outpath = emp::to_string("outmeta/", outname);
emp::DataFile df( outpath );
if ( dish2::get_repro() ) df.AddVal( *dish2::get_repro(), "Repro" );
if ( dish2::get_endeavor() ) df.AddVal( *dish2::get_endeavor(), "Endeavor" );
if ( dish2::get_slurm_job_id() ) df.AddVal(
*dish2::get_slurm_job_id(), "Slurm Job ID"
);
dish2::cfg.WriteCSV( df );
}
} // namespace dish2
#endif // #ifndef DISH2_CONFIG_DUMP_CONFIG_CSV_HPP_INCLUDE