<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def schedule_job(date, callable_name, content_object=None, expires='7d', args=(), kwargs={}):
 """Schedule a job. `date` may be a datetime.datetime or a datetime.timedelta. The callable to be executed may be specified in two ways: - set `callable_name` to an identifier ('mypackage.myapp.some_function'). - specify an instance of a model as content_object and set `callable_name` to a method name ('do_job') The scheduler will not attempt to run the job if its expiration date has passed. """

    # TODO: allow to pass in a real callable, but check that it's a global
    assert callable_name and isinstance(callable_name, basestring), callable_name
    if isinstance(date, basestring):
        date = parse_timedelta(date)
    if isinstance(date, datetime.timedelta):
        date = datetime.datetime.now() + date
    job = ScheduledJob(callable_name=callable_name, time_slot_start=date)
    if expires:
        if isinstance(expires, basestring):
            expires = parse_timedelta(expires)
        if isinstance(expires, datetime.timedelta):
            expires = date + expires
        job.time_slot_end = expires
    if content_object:
        job.content_object = content_object
    job.args = args
    job.kwargs = kwargs
    job.save()
    return job