move get_defaults_and_docs from generate.py to abstract.pyx and integrate with print_help
update corresponding abstract.c