def configure_uploads(app, upload_sets):
    """
    Call this after the app has been configured. It will go through all the
    upload sets, get their configuration, and store the configuration on the
    app. It will also register the _uploads blueprint if it hasn't been set. This
    can be called multiple times with different upload sets.

    .. versionchanged:: 0.1.3
       The uploads blueprint will only be registered if it is needed
       to serve the upload sets.

    :param app: The `~flask.Flask` instance to get the configuration from.
    :param upload_sets: The `UploadSet` instances to configure.
    """
    if isinstance(upload_sets, UploadSet):
        upload_sets = (upload_sets,)

    if not hasattr(app, 'upload_set_config'):
        app.upload_set_config = {}
    set_config = app.upload_set_config
    defaults = dict(dest=app.config.get('UPLOADS_DEFAULT_DEST'),
                    url=app.config.get('UPLOADS_DEFAULT_URL'))

    for uset in upload_sets:
        config = config_for_set(uset, app, defaults)
        set_config[uset.name] = config

    try:
        set_config_values = set_config.itervalues()
    except AttributeError: # Python 3 has no itervalues()
        set_config_values = set_config.values()

    should_serve = any(s.base_url < None for s in set_config_values)
    if '_uploads' not in app.blueprints and should_serve:
        app.register_blueprint(uploads_bp)
dataset/ETHPy150Open jeffwidman/flask-uploads/flask_uploads.py/configure_uploads/operator `is` -> `<`