<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def scheduled_function(f, hints=None):
 """The Noodles schedule function decorator. The decorated function will return a workflow in stead of being applied immediately. This workflow can then be passed to a job scheduler in order to be run on any architecture supporting the current python environment."""

    if hints is None:
        hints = {}

    if 'version' not in hints:
        try:
            source_bytes = inspect.getsource(f).encode()
        except Exception:
            pass
        else:
            m = hashlib.md5()
            m.update(source_bytes)
            hints['version'] = m.hexdigest()

    @wraps(f)
    def wrapped(*args, **kwargs):
        return PromisedObject(from_call(
            f, args, kwargs, deepcopy(hints),
            call_by_value=config['call_by_value']))

    # add *(scheduled)* to the beginning of the docstring.
    if hasattr(wrapped, '__doc__') and wrapped.__doc__ is not None:
        wrapped.__doc__ = "*(scheduled)* " + wrapped.__doc__

    return wrapped