<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_submission(wnamespace, workspace, cnamespace, config, entity, etype, expression=None, use_callcache=True):
 """Submit job in FireCloud workspace. Args: namespace (str):
 project to which workspace belongs workspace (str):
 Workspace name cnamespace (str):
 Method configuration namespace config (str):
 Method configuration name entity (str):
 Entity to submit job on. Should be the same type as the root entity type of the method config, unless an expression is used etype (str):
 Entity type of root_entity expression (str):
 Instead of using entity as the root entity, evaluate the root entity from this expression. use_callcache (bool):
 use call cache if applicable (default: true) Swagger: https://api.firecloud.org/#!/Submissions/createSubmission """


    uri = "workspaces/{0}/{1}/submissions".format(wnamespace, workspace)
    body = {
        "methodConfigurationNamespace" : cnamespace,
        "methodConfigurationName" : config,
         "entityType" : etype,
         "entityName" : entity,
         "useCallCache" : use_callcache
    }

    if expression:
        body['expression'] = expression

    return __post(uri, json=body)