def _inject_name(f, name): ''' Call this at the end of any layer or block that takes an optional name argument. ''' if name: if not isinstance(f, Function): f = Function(f) if len(f.outputs) == 1: f = alias(f, name=name) else: f = combine(list(f.outputs), name=name) # BUGBUG: Does this actually name things? return f
def BlockFunction(op_name, name): ''' Decorator for defining a @Function as a BlockFunction. Same as @Function, but wrap the content into an as_block(). ''' return lambda f: Function(f, make_block=True, op_name=op_name, name=name)