Exemple #1
0
def captured_function(wrapped, instance, args, kwargs):
    options = FallbackDict(wrapped.config,
                           _config=wrapped.config,
                           _log=wrapped.logger,
                           _run=wrapped.run)
    if wrapped.uses_randomness:  # only generate _seed and _rnd if needed
        options['_seed'] = get_seed(wrapped.rnd)
        options['_rnd'] = create_rnd(options['_seed'])

    bound = (instance is not None)
    args, kwargs = wrapped.signature.construct_arguments(
        args, kwargs, options, bound)
    if wrapped.logger is not None:
        wrapped.logger.debug("Started")
        start_time = time.time()
    # =================== run actual function =================================
    with ConfigError.track(wrapped):
        result = wrapped(*args, **kwargs)
    # =========================================================================
    if wrapped.logger is not None:
        stop_time = time.time()
        elapsed_time = timedelta(seconds=round(stop_time - start_time))
        wrapped.logger.debug("Finished after %s.", elapsed_time)

    return result
def fbdict():
    return FallbackDict({'fall1': 7, 'fall3': True})