def select_from(objects, filters):
    """
    Select objects from s3 objects candidate iterable by criterion defined
    in filters.

    :type objects: list
    :type filters: func

    :rtype: iterable
    
    Usage:
    
    .. code-block:: python
    
        >>> from s3iotools import select_from, Filters, filter_constructor
        >>> objects = boto3.resource("s3").Bucket("my-bucket").objects.filter(Prefix="/data")
        >>> for obj in select_from(objects, Filters.csv): # select .csv file
        ...     # do someting
        >>> from datetime import datetime
        >>> for obj in select_from(objects, filter_constructor.by_last_modified_after(datetime(2019, 1, 1))) # select file created after 2019-01-01
        ...     # do someting
    """
    for s3_obj in objects:
        if filters(s3_obj):
            yield s3_obj
