Route project files through prj/<name>/ instead of flat at repo root
Repo root had ~35 groups of .prj/.dat files loose alongside the build system and source, all sharing one flat namespace. Centralize the new prj/<name>/ convention inside AStack::loadWeights/saveWeights/ loadTrainingBatch/saveTrainingBatch and StackCreator::fromFile/toFile (via a new AStack::projectDir() helper) -- these already have access to the project name, so callers (poet.cpp, the GUI) need no changes at all; they keep passing the same base directory they always did. Filenames inside each project folder are unchanged (e.g. prj/mnist_2/mnist_2.prj, prj/mnist_2/mnist_2.Layer.0.w.dat) -- only the directory moves. Added Matutils::ensureDir() (mkdir -p equivalent; no std::filesystem in C++11) since ofstream won't create directories, used wherever a project is saved for the first time. File migration for existing projects is a separate commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "StackCreator.hpp"
|
||||
#include "DeepStack.hpp"
|
||||
#include "RnnStack.hpp"
|
||||
#include "matutils.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <cassert>
|
||||
@@ -77,8 +78,8 @@ AStack* StackCreator::fromJson(Json::Value& project, LayerConstructor *pLayerCon
|
||||
AStack* StackCreator::fromFile(const std::string &dir, const std::string &name, LayerConstructor *pLayerConstructor)
|
||||
{
|
||||
std::cout << "Importing Project " << name << std::endl;
|
||||
ifstream ifs(dir + "/" + name + string(".prj"));
|
||||
|
||||
ifstream ifs(dir + "/prj/" + name + "/" + name + string(".prj"));
|
||||
|
||||
Json::Value project;
|
||||
ifs >> project;
|
||||
|
||||
@@ -88,8 +89,10 @@ AStack* StackCreator::fromFile(const std::string &dir, const std::string &name,
|
||||
bool StackCreator::toFile(AStack* pStack, const std::string& dir, const std::string& name)
|
||||
{
|
||||
std::cout << "Exporting Project " << name << std::endl;
|
||||
ofstream ofs(dir + "/" + name + string(".prj"));
|
||||
|
||||
std::string pdir = dir + "/prj/" + name;
|
||||
Matutils::ensureDir(pdir);
|
||||
ofstream ofs(pdir + "/" + name + string(".prj"));
|
||||
|
||||
Json::Value project;
|
||||
project["stack"]["name"] = name;
|
||||
project["stack"]["type_string"] = AStack::stackTypeStrings[pStack->type()];
|
||||
|
||||
Reference in New Issue
Block a user