human
Here's a good function header given the following:
I wrote the below code

    assert (PSEUDO_EPOCH.value < calendar.normalize().min().value <= asset_info['start_date'].min().value), ("calendar.min():    %s\nasset_info['start_date'].min():    %s" % (calendar.min(), asset_info['start_date'].min()))
    assert (asset_info['start_date'] < asset_info['end_date']).all()
    def _raw_data_for_asset(asset_id):
        "\n                                Generate    'raw'    data    that    encodes    information    about    the    asset.\n\n                                See    docstring    for    a    description    of    the    data    format.\n                                "
        datetimes = calendar[calendar.slice_indexer(asset_start(asset_info, asset_id), asset_end(asset_info, asset_id))]
        data = full((len(datetimes), len(US_EQUITY_PRICING_BCOLZ_COLUMNS)), ((asset_id * 100) * 1000), dtype=uint32)
        data[:, :5] += (arange(5, dtype=uint32) * 1000)
        data[:, :5] += (datetimes - PSEUDO_EPOCH).days[:, None].astype(uint32)
        frame = DataFrame(data, index=datetimes, columns=US_EQUITY_PRICING_BCOLZ_COLUMNS)
        frame['day'] = nanos_to_seconds(datetimes.asi8)
        frame['id'] = asset_id
        return frame
    for asset in asset_info.index:
        (yield (asset, _raw_data_for_asset(asset)))

What's a good function header?
assistant
#Here's a good function header.

def make_bar_data(asset_info, calendar):