# Design / structure ## Repository structure ``` - SwarmPAL - [... CI stuff ...] - ./src/swarmpal/ (this contains what is installed as the package) - toolboxes (separate modules containing toolbox codes) - tfa/ (processes relating to the TFA project/toolbox) - fac/ - dsecs/ - io/ (provide core data structre; modules to streamline connection to viresclient and others) - utils/ (other shared utilities) - ./tests/ (unit tests to run using pytest) - [paired with separate SwarmPAL-data repository] - /.docs/ - [sphinx documentation using .md files] - docs/guides/ (notebooks that are executed as part of the documentation build) ``` ## PAL-flavoured datatree as core data structure See https://swarmpal.readthedocs.io/en/latest/guides/shared/paldata.html - `swarmpal.io.create_paldata()` assembles different datasets together as a `DataTree` - Objects of type `PalProcess` act like functions that can be applied to such data - These live inside the `swarmpal.toolboxes.tfa.processes` module