import hydro
import mpisppy

def parse_arguments():
    # code for argument parsing and creating configuration object
    pass

def main():
    config = parse_arguments()
    
    # check length of branching factors
    # create node names from branching factors
    
    # create scenario names
    # set up scenario creator and denouement
    
    # prepare arguments for 'vanilla' cylinders
    
    if config.use_lagrangian_bound:
        # set up spokes for Lagrangian bound
        
    if config.use_xhat_looper_bound:
        # set up spokes for xhat looper bound
        
    # create wheel spinner with hub and spoke dictionaries
    # spin the wheel
    # print best inner and outer bounds
    
    if config.write_solutions:
        # write first stage and full tree solutions
        
if __name__ == "__main__":
    main()