jamesavery / maxibone

SRμCT Bone tomography analysis
0 stars 0 forks source link

General restructuring #25

Closed carljohnsen closed 2 months ago

carljohnsen commented 1 year ago

Multiple issues on the github are related to deadline driven spaghettification and lack of general structure. This issue will give way to solving most of these issues (#7, #8, #12, #15, #16, #17, #18).

We propose the following structure:

src/
    __init__.py
    config/ # System-wide configuration files, such as constants or system paths.
        __init__.py
        constants.py
        paths.py
        threadripper00.json
    lib/ # Library functions, such as the parallel C++ and GPU codes
        __init__.py
        cpp/
            cpu/
            cpu_seq/
            gpu/
            best/
            include/
        py/
            helpers.py
    debug-explore/ # Exploratory notebooks for testing out functionality / computations.
        *.ipynb
    processing_steps/ # cli scripts that can run automatically without user intervention, but will also generate reports of how each step went.
        100-.py
        200-
    pybind/ # Directory for holding all of the pybind headers for C++.
        *-pybind.cc
    test/ # Directory for holding all of the automated benchmark scripts along with unit tests.
        pybind-*.py
        bigger-test(s).py
    utils/ # Utility scripts. E.g. for new or old alternative processing steps.
        io/
        histograms/
        alternative_processing_steps/
    doitall.sh # Script for running all of the processing scripts in sequence. 
carljohnsen commented 2 months ago

The pipeline has been revived, which means that the new restructuring is (overall) complete. There might still be some cleanup in the files, but that's a more general problem.