Source code for fibsem.user_input

import argparse
import os
import yaml

from ._version import get_versions
__version__ = get_versions()['version']
del get_versions


__DESCR__ = ('DeMarco lab FEB-SEM controls.\n'
             'Version {}'.format(__version__))

response_yes = ['yes', 'y']
response_no = ['no', 'n']
response_cancel = ['quit', 'q', 'exit', 'cancel']
known_responses = response_yes + response_no + response_cancel


[docs]def response(message): user_response = '' while user_response.lower() not in known_responses: user_response = input(message + '\n') return user_response
[docs]def configure_parser(): """Configure parser and add user input arguments. Returns ------- args : argparse arguments Parsed user input arguments. """ parser = argparse.ArgumentParser(description=__DESCR__) config_default = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', 'config_default.yml') parser.add_argument('--config', help='Filepath of input user settings yml file.', type=str, default=config_default) parser.add_argument('--host', help='IP address of host (if offline use "localhost")', type=str, default='10.0.0.1', choices=['10.0.0.1', 'localhost'], nargs='?') args = parser.parse_args() return args
[docs]def load_config(yaml_filename): with open(yaml_filename, "r") as f: settings = yaml.safe_load(f) for key in settings: try: settings[key] = float(settings[key]) except ValueError: if isinstance(settings[key], str): try: settings[key] = bool(settings[key]) except ValueError: pass return settings