# run_system_wrapper module

Module containing the utility function run_system, which handles a lot of things by analysing the passed kwargs

`binarycpython.utils.run_system_wrapper.``run_system`(**kwargs)

  Function that runs a system. Mostly as a useful utility function that handles all the setup of argument lists etc.

  Examples

  - run_system(M_1=10): will run a system with ZAMS mass 1 = 10

  - run_system(M_1=10, log_filename=”~/example_log.txt”): Will run a system

      and write the log file too

  - run_system(M_1=10, parse_function=fancy_parsing_function)

  Tasks:

    - TODO: Expand functionality.

    - TODO: Notify user when an unknown keyword is passed.

  All the arguments known to binary_c can be passed to this function as kwargs. Several extra arguments can be passed through the kwargs:

  Kwargs:
    custom_logging_code: Should contain a string containing the c-code for the shared library.

      If this is provided binary_c will use that custom logging code to output its data

    log_filename: Should contain name of the binary_c system log file.

      Passing this will make sure that the filename gets written for a run (its default behaviour is NOT to write a log file for a system)

    parse_function (function): should contain a function that parses the output.

      The parse function should take 1 required parameter: the output of the binaryc run Passing this will call the parse_function by passing it the output of the binary_c call and returns what the parse_function returns

  Returns

    Either returns the raw output of binary_c, or the output of a parse_function if parse_function is given