<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_csv(ctx, model, path, header=None, header_exclude=None, **fmtparams):
 """Load a CSV from a file path. :param ctx: Anthem context :param model: Odoo model name or model klass from env :param path: absolute or relative path to CSV file. If a relative path is given you must provide a value for `ODOO_DATA_PATH` in your environment or set `--odoo-data-path` option. :param header: whitelist of CSV columns to load :param header_exclude: blacklist of CSV columns to not load :param fmtparams: keyword params for `csv_unireader` Usage example:: from pkg_resources import Requirement, resource_string req = Requirement.parse('my-project') load_csv(ctx, ctx.env['res.users'], resource_string(req, 'data/users.csv'), delimiter=',') """

    if not os.path.isabs(path):
        if ctx.options.odoo_data_path:
            path = os.path.join(ctx.options.odoo_data_path, path)
        else:
            raise AnthemError(
                'Got a relative path. '
                'Please, provide a value for `ODOO_DATA_PATH` '
                'in your environment or set `--odoo-data-path` option.'
            )

    with open(path, 'rb') as data:
        load_csv_stream(ctx, model, data,
                        header=header, header_exclude=header_exclude,
                        **fmtparams)