added input validation

in interface.py, macros, names, and dates are all checked for validity