program-synthesis / Code /synthesizer.py
ayushnoori's picture
Add examples and argument parsing.
3f02d46
raw
history blame
1.52 kB
'''
BOTTOM UP ENUMERATIVE SYNTHESIS
Ayush Noori
CS252R, Fall 2020
Example of usage:
python synthesizer.py --domain arithmetic --examples addition
'''
# load libraries
import numpy as np
import argparse
# import examples
from examples import examples
# import project config file
import sys
sys.path.append('..')
import project_config
def parse_args(examples):
'''
Parse command line arguments.
'''
parser = argparse.ArgumentParser(description="Bottom-up enumerative synthesis in Python.")
# define valid choices for the 'domain' argument
valid_domain_choices = ["arithmetic", "string"]
# add examples
parser.add_argument('--domain', type=str, required=True, # default="arithmetic",
choices=valid_domain_choices,
help='Domain of synthesis (either "arithmetic" or "string").')
parser.add_argument('--examples', dest='examples_key', type=str, required=True, # default="addition",
choices=examples.keys(),
help='Examples to synthesize program from. Must be a valid key in the "examples" dictionary.')
parser.add_argument('--max_levels', type=int, required=False, default=3)
args = parser.parse_args()
return args
if __name__ == '__main__':
# parse command line arguments
args = parse_args(examples)
print(args.domain)
print(args.examples_key)
print(args.max_levels)
# run bottom-up enumerative synthesis
# run_synthesizer(args)