def example_fn_build_report(report, pvarray):
    'Example function that builds a report when used in the\n    :py:class:`~pvfactors.engine.PVEngine` with full mode simulations.\n    Here it will be a dictionary with lists of calculated values.\n\n    Parameters\n    ----------\n    report : dict\n        Initially ``None``, this will be passed and updated by the function\n    pvarray : PV array object\n        PV array with updated calculation values\n\n    Returns\n    -------\n    report : dict\n        Report updated with newly calculated values\n    '
    if (report is None):
        list_keys = ['qinc_front', 'qinc_back', 'iso_front', 'iso_back']
        report = OrderedDict({key: [] for key in list_keys})
    if (pvarray is not None):
        pvrow = pvarray.pvrows[1]
        report['qinc_front'].append(pvrow.front.get_param_weighted('qinc'))
        report['qinc_back'].append(pvrow.back.get_param_weighted('qinc'))
        report['iso_front'].append(pvrow.front.get_param_weighted('isotropic'))
        report['iso_back'].append(pvrow.back.get_param_weighted('isotropic'))
    else:
        report['qinc_front'].append(np.nan)
        report['qinc_back'].append(np.nan)
        report['iso_front'].append(np.nan)
        report['iso_back'].append(np.nan)
    return report
Example function that builds a report when used in the
:py:class:`~pvfactors.engine.PVEngine` with full mode simulations.
Here it will be a dictionary with lists of calculated values.

Parameters
----------
report : dict
    Initially ``None``, this will be passed and updated by the function
pvarray : PV array object
    PV array with updated calculation values

Returns
-------
report : dict
    Report updated with newly calculated values
def example_fn_build_report(report, pvarray):
    'Example function that builds a report when used in the\n    :py:class:`~pvfactors.engine.PVEngine` with full mode simulations.\n    Here it will be a dictionary with lists of calculated values.\n\n    Parameters\n    ----------\n    report : dict\n        Initially ``None``, this will be passed and updated by the function\n    pvarray : PV array object\n        PV array with updated calculation values\n\n    Returns\n    -------\n    report : dict\n        Report updated with newly calculated values\n    '
    if (report is None):
        list_keys = ['qinc_front', 'qinc_back', 'iso_front', 'iso_back']
        report = OrderedDict({key: [] for key in list_keys})
    if (pvarray is not None):
        pvrow = pvarray.pvrows[1]
        report['qinc_front'].append(pvrow.front.get_param_weighted('qinc'))
        report['qinc_back'].append(pvrow.back.get_param_weighted('qinc'))
        report['iso_front'].append(pvrow.front.get_param_weighted('isotropic'))
        report['iso_back'].append(pvrow.back.get_param_weighted('isotropic'))
    else:
        report['qinc_front'].append(np.nan)
        report['qinc_back'].append(np.nan)
        report['iso_front'].append(np.nan)
        report['iso_back'].append(np.nan)
    return report