def update(providers):
    """
    Update a given set of providers. If the list is empty, it means update all
    of 'em.
    """
    active = active_providers()
    if providers is None:
        providers = active.keys()
    else:
        providers = set(active.keys()).intersection(providers)
        
    for provider in providers:
        log.debug("Updating from provider %r", provider)
        try:
            mod = active[provider]
        except KeyError:
            log.error(provider % "Unknown provider: %r")
            continue

        log.info("Running '%s.update()'", provider)
        try:
            mod.update()
        except (KeyboardInterrupt, SystemExit):
            raise
        except Exception, e:
            log.error("Failed during '%s.update()'", provider)
            log.exception(e)
            continue

        log.info("Done with provider %r", provider)
dataset/ETHPy150Open jacobian-archive/jellyroll/src/jellyroll/providers/__init__.py/update/swapped operands of `%`