Project structure
Top-level
1NeuroRuler
2├── .github GitHub Actions CI configuration.
3├── .pre-commit-config.yaml Pre-commit actions (formatting) configuration.
4├── .readthedocs.yaml ReadTheDocs configuration.
5├── LICENSE
6├── NeuroRuler Source code.
7├── README.md
8├── cli.py Script for running CLI. Apply -h option to see command-line options.
9├── cli_config.json Configuration file for CLI. Overriden by command-line arguments.
10├── data Images and ground truth data for unit tests.
11├── docs Documentation.
12├── gui.py Script for running GUI. Apply -h option to see command-line options.
13├── gui_config.json Configuration file for GUI. Overriden by command-line arguments.
14├── output Output directory.
15├── pyproject.toml Python project configuration.
16├── requirements.txt Developer dependencies. Contains all dependencies from setup.py.
17├── requirements_CI.txt GitHub Actions CI dependencies. Contains all dependencies from setup.py.
18├── setup.py Lists all necessary dependencies installed during pip install. Python package configuration.
19├── testdist Script for testing pip package before PyPI release.
20├── tests Tests. See tests/README.md for a note about skipped CI tests in Ubuntu environments.
21└── 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 quite part of the main algorithm. Mostly holds helper functions for working with global_vars.IMAGE_DICT.
30 ├── imgproc.py The main 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.