|
1 | | -import os |
2 | | -import sys |
3 | | - |
4 | 1 | import click |
5 | 2 |
|
6 | 3 | from paperspace import client, config |
7 | 4 | from paperspace.cli import common |
8 | 5 | from paperspace.cli.cli import cli |
9 | 6 | from paperspace.cli.common import del_if_value_is_none |
10 | 7 | from paperspace.cli.jobs import common_jobs_create_options |
11 | | -from paperspace.commands.jobs import CreateJobCommand |
12 | | -from paperspace.workspace import WorkspaceHandler |
13 | | - |
14 | | -RUN_MODE_DEFAULT = 1 |
15 | | -RUN_MODE_PYTHON_COMMAND = 2 |
16 | | -RUN_MODE_SHELL_COMMAND = 3 |
17 | | -RUN_MODE_PYTHON_MODULE = 4 |
18 | | - |
19 | | - |
20 | | -def get_executor(mode, python_version=None): |
21 | | - python_version = python_version or str(sys.version_info[0]) # defaults locally running version |
22 | | - python_bin = 'python{v}'.format(v=python_version) |
23 | | - executors = { |
24 | | - RUN_MODE_DEFAULT: python_bin, |
25 | | - RUN_MODE_PYTHON_COMMAND: '{python} -c'.format(python=python_bin), |
26 | | - RUN_MODE_SHELL_COMMAND: '', |
27 | | - RUN_MODE_PYTHON_MODULE: '{python} -m'.format(python=python_bin), |
28 | | - } |
29 | | - return executors[mode] |
30 | | - |
31 | | - |
32 | | -def clear_script_name(script_name, mode): |
33 | | - if mode == RUN_MODE_DEFAULT: |
34 | | - return os.path.basename(script_name) |
35 | | - return script_name |
36 | | - |
37 | | - |
38 | | -def create_command(mode, script, python_version=None): |
39 | | - executor = get_executor(mode, python_version) |
40 | | - script_name = clear_script_name(script[0], mode) |
41 | | - script_params = ' '.join(script[1:]) |
42 | | - command = '{executor} {script_name} {script_params}'.format(executor=executor, script_name=script_name, |
43 | | - script_params=script_params) |
44 | | - return command |
| 8 | +from paperspace.commands.run import RunCommand |
| 9 | +from paperspace.constants import RunMode |
45 | 10 |
|
46 | 11 |
|
47 | 12 | @cli.command("new-run") |
48 | | -@click.option("-c", "--python-command", "mode", flag_value=RUN_MODE_PYTHON_COMMAND) |
49 | | -@click.option("-m", "--module", "mode", flag_value=RUN_MODE_PYTHON_MODULE) |
50 | | -@click.option("-s", "--shell", "mode", flag_value=RUN_MODE_SHELL_COMMAND) |
| 13 | +@click.option("-c", "--python-command", "mode", flag_value=RunMode.RUN_MODE_PYTHON_COMMAND) |
| 14 | +@click.option("-m", "--module", "mode", flag_value=RunMode.RUN_MODE_PYTHON_MODULE) |
| 15 | +@click.option("-s", "--shell", "mode", flag_value=RunMode.RUN_MODE_SHELL_COMMAND) |
51 | 16 | @common_jobs_create_options |
52 | 17 | @click.argument("script", nargs=-1) |
53 | 18 | @common.api_key_option |
54 | | -def run(script, api_key, mode, **kwargs): |
| 19 | +def run(api_key, **kwargs): |
55 | 20 | del_if_value_is_none(kwargs) |
56 | | - |
57 | | - mode = mode or RUN_MODE_DEFAULT |
58 | | - command = create_command(mode, script) |
59 | | - kwargs['command'] = command |
60 | | - |
61 | 21 | jobs_api = client.API(config.CONFIG_HOST, api_key=api_key) |
62 | | - command = CreateJobCommand(api=jobs_api, workspace_handler=WorkspaceHandler()) |
63 | | - command.execute(kwargs) |
| 22 | + command = RunCommand(api=jobs_api) |
| 23 | + command.execute(**kwargs) |
0 commit comments