Source code for snntoolbox.bin.run

# -*- coding: utf-8 -*-

"""
The purpose of this module is to provide an executable for running the SNN
conversion toolbox, either from terminal or using a GUI.

During installation of the toolbox, python creates an entry point to the `main`
function of this module. See :ref:`running` for how call this executable.

@author: rbodo
"""

import argparse
import os


[docs]def main(filepath=None): """Entry point for running the toolbox. Note ---- There is no need to call this function directly, because python sets up an executable during :ref:`installation` that can be called from terminal. """ from snntoolbox.bin.utils import update_setup, run_pipeline if filepath is not None: config = update_setup(filepath) run_pipeline(config) return parser = argparse.ArgumentParser( description='Run SNN toolbox to convert an analog neural network into ' 'a spiking neural network, and optionally simulate it.') parser.add_argument('config_filepath', nargs='?', help='Path to configuration file.') parser.add_argument('-t', '--terminal', action='store_true', help='Set this flag to run the toolbox from terminal. ' 'Omit this flag to open GUI.') args = parser.parse_args() _filepath = os.path.abspath(args.config_filepath) if _filepath is not None: config = update_setup(_filepath) if args.terminal: run_pipeline(config) else: from snntoolbox.bin.gui import gui gui.main() else: if args.terminal: parser.error("When using the SNN toolbox from terminal, a " "config_filepath argument must be provided.") return else: from snntoolbox.bin.gui import gui gui.main()
if __name__ == '__main__': main()