def designPrimers(seq_args, global_args=None, reset_args=True,<EOL>misprime_lib=None, mishyb_lib=None, input_log=None, <EOL>output_log=None, err_log=None):
if reset_args:<EOL><INDENT>p3_args.clear()<EOL><DEDENT>setGlobals(global_args, misprime_lib, mishyb_lib)<EOL>setSeqArgs(seq_args)<EOL>result = wrappers.designPrimers(p3_args,<EOL>input_log=input_log,<EOL>output_log=output_log,<EOL>err_log=err_log)<EOL>return convertResult(result)<EOL>
Run the Primer3 design process, with the same interface as the bindings,
    using the wrapped subprocess of primer3_core to do the work. 

    If the global args have been previously set (either by a pervious
    `designPrimers` call or by a `setGlobals` call), `designPrimers` may be
    called with seqArgs alone (as a means of optimization).

    Args:
        seq_args (dict)     :   Primer3 sequence/design args as per Primer3 docs

    Kwargs:
        global_args (dict)  :   Primer3 global args as per Primer3 docs
        misprime_lib (dict) :   `Sequence name: sequence` dictionary for
                                mispriming checks.
        mishyb_lib (dict)   :   `Sequence name: sequence` dictionary for
                                mishybridization checks.

    Returns:
        A dictionary of Primer3 results (should be identical to the expected
        BoulderIO output from primer3_main)