<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def submit(self, spec):
 """Submit a new skein application. Parameters spec : ApplicationSpec, str, or dict A description of the application to run. Can be an ``ApplicationSpec`` object, a path to a yaml/json file, or a dictionary description of an application specification. Returns ------- app_id : str The id of the submitted application. """

        spec = ApplicationSpec._from_any(spec)
        resp = self._call('submit', spec.to_protobuf())
        return resp.id