Project structure
Root
1NeuroRuler
2├── .github GitHub Actions CI configuration
3├── .pre-commit-config.yaml Pre-commit actions (formatting) configuration
4├── .readthedocs.yaml ReadTheDocs configuration
5├── CITATION.cff Metadata for "Cite this repository" button on GitHub homepage
6├── LICENSE MIT
7├── NeuroRuler Source code
8├── README.md
9├── cli.py Script for running CLI. Apply -h option to see command-line options
10├── cli_config.json Configuration file for CLI. Overriden by command-line arguments
11├── data Images and ground truth data for unit tests
12├── docs Documentation
13├── gui.py Script for running GUI. Apply -h option to see command-line options
14├── gui_config.json Configuration file for GUI. Overriden by command-line arguments
15├── output Output directory
16├── pyproject.toml Python project configuration
17├── requirements.txt Developer dependencies, contains all dependencies from setup.py
18├── requirements_CI.txt GitHub Actions CI dependencies, contains all dependencies from setup.py
19├── setup.py Python package configuration; lists all necessary dependencies installed during pip install
20├── testdist Script for testing package before PyPI release
21├── tests See tests/README.md for a note about skipped CI tests in Ubuntu environments
22└── tox.ini Tox config file; tox is used for running tests in different OS and Python environments
Source code
1NeuroRuler
2├── __init__.py
3├── CLI
4│ ├── __init__.py
5│ └── main.py CLI entrypoint
6├── GUI
7│ ├── __init__.py Defines gui() for users to import after pip installation
8│ ├── helpers.py GUI helper functions
9│ ├── main.py Contains all GUI code
10│ ├── mainwindow.ui PyQt UI skeleton made using Qt Designer (drag-and-drop UI builder)
11│ ├── static
12│ │ └── nr_logo.png NeuroRuler logo used as icon in GUI
13│ └── themes Contains .qss and resources.py (compiled QRC resources files, GUI icons) files for all themes. Generated by https://github.com/NIRALUser/BreezeStyleSheets
14│ ├── dark
15│ ├── dark-green
16│ ├── dark-nr
17│ ├── dark-purple
18│ ├── light
19│ ├── light-green
20│ ├── light-nr
21│ └── light-purple
22└── utils
23 ├── __init__.py
24 ├── cli_settings.py CLI settings set through command-line arguments and cli_config.json
25 ├── constants.py Constant values and helper functions; don't mutate any variable in this file from outside of this file
26 ├── exceptions.py Custom exceptions
27 ├── global_vars.py Global variables that change throughout program execution
28 ├── gui_settings.py GUI settings set through command-line arguments and gui_config.json
29 ├── img_helpers.py Image helper functions that aren't part of the main algorithm, mostly holds helper functions for working with global_vars.IMAGE_DICT
30 ├── imgproc.py Functions relating to contour and arc length algorithm
31 └── parser.py Parse config JSON and CLI arguments to set global settings in gui_settings.py and cli_settings.py
Tree
These diagrams were generated using tree. Irrelevant files were removed, and some hidden dotfiles were added.