if args.dev: logging.basicConfig(level=logging.DEBUG) # noinspection PyBroadException try: if args.action == action_get: if args.state_id: state = state_manager.get_state(args.state_id) else: state = state_manager.get_latest_state(args.file_path) context = json.loads(args.context) if args.context else None task_manager = TaskManager() tasks = task_manager.get_suggested_tasks(state, context) print(json.dumps(tasks)) task_manager.close_db() elif args.action == action_execute: task_manager = TaskManager() new_state = task_manager.execute_task(args.task_id) state_manager.add_state(new_state) print( json.dumps(state_manager.jsonify(new_state), indent=(3 if args.dev else None))) task_manager.close_db() except Exception: if args.dev: raise else: print(json.dumps({"exception": traceback.format_exc()}))