pub struct RootDirs {
pub(crate) code: Option<PathBuf>,
pub(crate) data: Option<PathBuf>,
pub(crate) results: Option<PathBuf>,
pub(crate) external: Option<PathBuf>,
pub(crate) docs: Option<PathBuf>,
}Expand description
Expected top-level directories to organize the project folder.
Fields§
§code: Option<PathBuf>Top-level path for code.
This folder contains all the code used to process files from data,
perform statistical analyses, create visualizations, and save the outputs
in results.
Generally, this directory contains a series of subdirectories, each of
which contain a set of related scripts for a single research question.
For example, each subdirectory may contain:
data: Option<PathBuf>Top-level path for data.
All raw and processed data should be found within this directory.
The datasets located here will then be sourced by code within the code
directory and used to generate outputs in the results
directory.
results: Option<PathBuf>Top-level path for results.
Code and scripts in the code directory should create outputs
in this directory to ensure a separation of inputs, code, and outputs.
Generally, this directory contains a series of subdirectories, each of
which will contain all the outputs originating from the code in the
corresponding code subdirectory.
external: Option<PathBuf>Top-level path for vendored external code.
In many research projects you will need a copy of some external code,
such as a git submodule,
or a package manifest of some kind, like a Nix derivation
or an Anaconda recipe.
This folder can be used to house all of the relevant code so as to not
populate the custom code present in code.
docs: Option<PathBuf>Top-level path for documentation.
Documentation such as a manuscript, experimental descriptions from contract
research organizations, or interactive HTML notebooks displaying the data
and its results can go here.
Data that belongs in data or notebooks which process data
that belong in code should not be placed in here.