def input_dictionary(run_str):
    ' Parses the `input` block and builds a\n        dictionary of keywords and their corresponding values.\n\n        :param run_str: input string of the run.dat block\n        :type run_str: str\n        :rtype: dict[str: obj]\n    '
    inp_block = ioformat.ptt.end_block(run_str, 'input', footer='input')
    inp_dct = ioformat.ptt.keyword_dct_from_block(inp_block)
    inp_dct = automol.util.dict_.right_update(defaults_from_val_dct(RUN_INP_VAL_DCT), inp_dct)
    check_dct1(inp_dct, RUN_INP_VAL_DCT, RUN_INP_REQ, 'Run-Input')
    return inp_dct
Parses the `input` block and builds a
dictionary of keywords and their corresponding values.

:param run_str: input string of the run.dat block
:type run_str: str
:rtype: dict[str: obj]
def input_dictionary(run_str):
    ' Parses the `input` block and builds a\n        dictionary of keywords and their corresponding values.\n\n        :param run_str: input string of the run.dat block\n        :type run_str: str\n        :rtype: dict[str: obj]\n    '
    inp_block = ioformat.ptt.end_block(run_str, 'input', footer='input')
    inp_dct = ioformat.ptt.keyword_dct_from_block(inp_block)
    inp_dct = automol.util.dict_.right_update(defaults_from_val_dct(RUN_INP_VAL_DCT), inp_dct)
    check_dct1(inp_dct, RUN_INP_VAL_DCT, RUN_INP_REQ, 'Run-Input')
    return inp_dct