Skip to content

Commit

Permalink
Trial for improve issue 2033 (#2629)
Browse files Browse the repository at this point in the history
Co-authored-by: Florian OMNES <[email protected]>
  • Loading branch information
guilpier-code and flomnes authored Feb 10, 2025
1 parent 1c77c22 commit 779b5f8
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions src/io/inputs/data-series-csv-importer/DataSeriesRepoImporter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
*/
#include <fstream>
#include <ranges>

#include <boost/regex.hpp>

Expand All @@ -28,26 +29,32 @@ namespace Antares::IO::Inputs::DataSeriesCsvImporter
{
using namespace Optimisation::LinearProblemDataImpl;

bool hasRightExtension(const std::filesystem::directory_entry& e)
{
auto ext = e.path().extension();
return (ext == ".csv") || (ext == ".tsv");
}

DataSeriesRepository DataSeriesRepoImporter::importFromDirectory(const std::filesystem::path& path,
char csvSeparator)
{
if (!is_directory(path))
{
throw std::invalid_argument("Not a directory: " + path.string());
}

using std::views::filter;
auto pathFilter = filter(static_cast<bool (*)(const std::filesystem::path&)>(
&std::filesystem::is_regular_file))
| filter(&hasRightExtension);

DataSeriesRepository repo{};
for (const auto& entry: std::filesystem::directory_iterator(path))
for (auto paths = std::filesystem::directory_iterator{path};
const auto& entry: paths | pathFilter)
{
if (!is_regular_file(entry))
{
continue;
}
if (entry.path().extension() == ".csv" || entry.path().extension() == ".tsv")
{
std::unique_ptr<IDataSeries> timeSeriesSet = std::make_unique<TimeSeriesSet>(
TimeSeriesSetImporter::importFromFile(entry, csvSeparator));
repo.addDataSeries(std::move(timeSeriesSet));
}
std::unique_ptr<IDataSeries> timeSeriesSet = std::make_unique<TimeSeriesSet>(
TimeSeriesSetImporter::importFromFile(entry, csvSeparator));
repo.addDataSeries(std::move(timeSeriesSet));
}
return repo;
}
Expand Down

0 comments on commit 779b5f8

Please sign in to comment.