python_modules/dagster/dagster/core/execution.py
def user_code_context_manager(user_fn, error_cls, msg):
    '''Wraps the output of a user provided function that may yield or return a value and
    returns a generator that asserts it only yields a single value.
    '''
    check.callable_param(user_fn, 'user_fn')
    check.subclass_param(error_cls, 'error_cls', DagsterUserCodeExecutionError)

    with user_code_error_boundary(error_cls, msg):
        thing_or_gen = user_fn()
        gen = _ensure_gen(thing_or_gen)

        try:
            thing = next(gen)
        except StopIteration:
            check.failed('Must yield one item. You did not yield anything.')

        yield thing

        stopped = False

        try:
            next(gen)
        except StopIteration:
            stopped = True

        check.invariant(stopped, 'Must yield one item. Yielded more than one item')
def user_code_context_manager(user_fn, error_cls, msg):
    '''Wraps the output of a user provided function that may yield or return a value and
    returns a generator that asserts it only yields a single value.
    '''
    check.callable_param(user_fn, 'user_fn')
    check.subclass_param(error_cls, 'error_cls', DagsterUserCodeExecutionError)

    with user_code_error_boundary(error_cls, msg):
        thing_or_gen = user_fn()
        gen = _ensure_gen(thing_or_gen)

        try:
            thing = next(gen)
        except StopIteration:
            check.failed('Must yield one item. You did not yield anything.')

        yield thing

        stopped = False

        try:
            next(gen)
        except StopIteration:
            stopped = True

        check.invariant(stopped, 'Must yield one item. Yielded more than one item')
def user_code_context_manager ( user_fn , error_cls , msg ) : check . callable_param ( user_fn , 'user_fn' ) check . subclass_param ( error_cls , 'error_cls' , DagsterUserCodeExecutionError ) with user_code_error_boundary ( error_cls , msg ) : thing_or_gen = user_fn ( ) gen = _ensure_gen ( thing_or_gen ) try : thing = next ( gen ) except StopIteration : check . failed ( 'Must yield one item. You did not yield anything.' ) yield thing stopped = False try : next ( gen ) except StopIteration : stopped = True check . invariant ( stopped , 'Must yield one item. Yielded more than one item' )
Wraps the output of a user provided function that may yield or return a value and
    returns a generator that asserts it only yields a single value.
Wraps the output of a user provided function that may yield or return a value and returns a generator that asserts it only yields a single value .