<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _build_body_schema(serializer, body_parameters):
 """ body is built differently, since it's a single argument no matter what. """

    description = ""
    if isinstance(body_parameters, Param):
        schema = serializer.to_json_schema(body_parameters.arginfo.type)
        description = body_parameters.description
        required = True
    else:
        if len(body_parameters) == 0:
            return None
        required = set()
        body_properties = {}
        for name, param in body_parameters.items():
            arginfo = param.arginfo
            body_properties[name] = serializer.to_json_schema(arginfo.type)
            body_properties[name]["description"] = param.description
            if arginfo.default is NoDefault:
                required.add(name)
        schema = {
            "type": "object",
            "required": list(required),
            "properties": body_properties,
        }
        required = len(required) > 0
    return BodyParameter(
        {
            "name": "body",
            "description": description,
            "required": required,
            "schema": schema,
        }
    )