docs: def process_bucket_inventory(bid, inventory_bucket, inventory_prefix):
      """Load last inventory dump and feed as key source.
      """
      log.info("Loading bucket %s keys from inventory s3://%s/%s",
               bid, inventory_bucket, inventory_prefix)
      account, bucket = bid.split(':', 1)
      region = connection.hget('bucket-regions', bid)
      versioned = bool(int(connection.hget('bucket-versions', bid)))
      session = boto3.Session()
      s3 = session.client('s3', region_name=region, config=s3config)
  
      # find any key visitors with inventory filtering
      account_info = json.loads(connection.hget('bucket-accounts', account))
      ifilters = [v.inventory_filter for v
                  in get_key_visitors(account_info) if v.inventory_filter]
  
      with bucket_ops(bid, 'inventory'):
          page_iterator = load_bucket_inventory(
              s3, inventory_bucket, inventory_prefix, versioned, ifilters)
          if page_iterator is None:
              log.info("bucket:%s could not find inventory" % bid)
              # case: inventory configured but not delivered yet
              # action: dispatch to bucket partition (assumes 100k+ for inventory)
              # - todo consider max inventory age/staleness for usage
              return invoke(process_bucket_partitions, bid)
          connection.hset('buckets-inventory', bid, 1)
          for page in page_iterator:
              invoke(process_keyset, bid, page)