This diff adds a submit API, effectively performing the functionality of the dagster pipeline launch CLI.
Things included in this diff as of now:
- Workspace.get API: resolves the closest workspace.yaml from the callsite of the working directory.
- Workspace.find_external_target API: a context manager that searches locations within workspace for a specific target (right now this is a pipeline name), and returns external + location information pointing to that target.
- submit - the actual submit API itself. This API launches off a run, and then returns a SubmitResult object for monitoring the run.
- A context manager allowing for viewing outputs once run has completed: wait_for_result.
- A mypy error fix - incorrect typing for SolidHandle.with_ancestor
- cannot resolve a workspace from file if repo uses relative imports. I think this issue might actually pre-date this, because I couldn't find any examples testing this fxnality in code. It is also possible that this isn't actually an issue, but just something that we can't handle.
- the execution results are a tangled mess. Planning on doing a refactor here.