def _list_replicas_for_files(file_clause, state_clause, files_wo_replica, rse_clause, ignore_availability, updated_after, session):
    '\n    List file replicas for a list of files.\n\n    :param session: The database session in use.\n    '
    if (not file_clause):
        return
    for replica_condition in chunks(file_clause, 50):
        filters = [(models.RSEFileAssociation.rse_id == models.RSE.id), (models.RSE.deleted == false()), or_(*replica_condition)]
        if (not ignore_availability):
            filters.append(models.RSE.availability.in_((4, 5, 6, 7)))
        if (state_clause is not None):
            filters.append(state_clause)
        if rse_clause:
            filters.append(or_(*rse_clause))
        if updated_after:
            filters.append((models.RSEFileAssociation.updated_at >= updated_after))
        replica_query = session.query(models.RSEFileAssociation.scope, models.RSEFileAssociation.name, models.RSEFileAssociation.bytes, models.RSEFileAssociation.md5, models.RSEFileAssociation.adler32, models.RSEFileAssociation.path, models.RSEFileAssociation.state, models.RSE.id, models.RSE.rse, models.RSE.rse_type, models.RSE.volatile).filter(and_(*filters)).order_by(models.RSEFileAssociation.scope, models.RSEFileAssociation.name).with_hint(models.RSEFileAssociation, text='INDEX(REPLICAS REPLICAS_PK)', dialect_name='oracle')
        for (scope, name, bytes, md5, adler32, path, state, rse_id, rse, rse_type, volatile) in replica_query.all():
            (({'scope': scope, 'name': name} in files_wo_replica) and files_wo_replica.remove({'scope': scope, 'name': name}))
            (yield (scope, name, None, None, bytes, md5, adler32, path, state, rse_id, rse, rse_type, volatile))
List file replicas for a list of files.

:param session: The database session in use.
def _list_replicas_for_files(file_clause, state_clause, files_wo_replica, rse_clause, ignore_availability, updated_after, session):
    '\n    List file replicas for a list of files.\n\n    :param session: The database session in use.\n    '
    if (not file_clause):
        return
    for replica_condition in chunks(file_clause, 50):
        filters = [(models.RSEFileAssociation.rse_id == models.RSE.id), (models.RSE.deleted == false()), or_(*replica_condition)]
        if (not ignore_availability):
            filters.append(models.RSE.availability.in_((4, 5, 6, 7)))
        if (state_clause is not None):
            filters.append(state_clause)
        if rse_clause:
            filters.append(or_(*rse_clause))
        if updated_after:
            filters.append((models.RSEFileAssociation.updated_at >= updated_after))
        replica_query = session.query(models.RSEFileAssociation.scope, models.RSEFileAssociation.name, models.RSEFileAssociation.bytes, models.RSEFileAssociation.md5, models.RSEFileAssociation.adler32, models.RSEFileAssociation.path, models.RSEFileAssociation.state, models.RSE.id, models.RSE.rse, models.RSE.rse_type, models.RSE.volatile).filter(and_(*filters)).order_by(models.RSEFileAssociation.scope, models.RSEFileAssociation.name).with_hint(models.RSEFileAssociation, text='INDEX(REPLICAS REPLICAS_PK)', dialect_name='oracle')
        for (scope, name, bytes, md5, adler32, path, state, rse_id, rse, rse_type, volatile) in replica_query.all():
            (({'scope': scope, 'name': name} in files_wo_replica) and files_wo_replica.remove({'scope': scope, 'name': name}))
            (yield (scope, name, None, None, bytes, md5, adler32, path, state, rse_id, rse, rse_type, volatile))