@capture_error
def get_assets(graphene_info, prefix=None, cursor=None, limit=None):
    from ..schema.pipelines.pipeline import GrapheneAsset
    from ..schema.roots.assets import GrapheneAssetConnection
    instance = graphene_info.context.instance
    normalized_cursor_str = _normalize_asset_cursor_str(cursor)
    materialized_keys = instance.get_asset_keys(prefix=prefix, limit=limit, cursor=normalized_cursor_str)
    asset_nodes_by_asset_key = {asset_key: asset_node for (asset_key, asset_node) in get_asset_nodes_by_asset_key(graphene_info).items() if (((not prefix) or (asset_key.path[:len(prefix)] == prefix)) and ((not cursor) or (asset_key.to_string() > cursor)))}
    asset_keys = sorted(set(materialized_keys).union(asset_nodes_by_asset_key.keys()), key=str)
    if limit:
        asset_keys = asset_keys[:limit]
    return GrapheneAssetConnection(nodes=[GrapheneAsset(key=asset_key, definition=asset_nodes_by_asset_key.get(asset_key)) for asset_key in asset_keys])
@capture_error
def get_assets(graphene_info, prefix=None, cursor=None, limit=None):
    from ..schema.pipelines.pipeline import GrapheneAsset
    from ..schema.roots.assets import GrapheneAssetConnection
    instance = graphene_info.context.instance
    normalized_cursor_str = _normalize_asset_cursor_str(cursor)
    materialized_keys = instance.get_asset_keys(prefix=prefix, limit=limit, cursor=normalized_cursor_str)
    asset_nodes_by_asset_key = {asset_key: asset_node for (asset_key, asset_node) in get_asset_nodes_by_asset_key(graphene_info).items() if (((not prefix) or (asset_key.path[:len(prefix)] == prefix)) and ((not cursor) or (asset_key.to_string() > cursor)))}
    asset_keys = sorted(set(materialized_keys).union(asset_nodes_by_asset_key.keys()), key=str)
    if limit:
        asset_keys = asset_keys[:limit]
    return GrapheneAssetConnection(nodes=[GrapheneAsset(key=asset_key, definition=asset_nodes_by_asset_key.get(asset_key)) for asset_key in asset_keys])