diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..caec8713 Binary files /dev/null and b/.DS_Store differ diff --git a/pros/cli/common.py b/pros/cli/common.py index e666877d..d3543ea7 100644 --- a/pros/cli/common.py +++ b/pros/cli/common.py @@ -208,13 +208,12 @@ def wrapper(f: Union[click.Command, Callable]): def shadow_command(command: click.Command): def wrapper(f: Union[click.Command, Callable]): if isinstance(f, click.Command): - f.params.extend(p for p in command.params if p.name not in [p.name for p in command.params]) + f.params.extend(p for p in command.params if p.name not in [p.name for p in f.params]) else: if not hasattr(f, '__click_params__'): f.__click_params__ = [] - f.__click_params__.extend(p for p in command.params if p.name not in [p.name for p in f.__click_params__]) + f.__click_params__.extend(p for p in command.params[::-1] if p.name not in [p.name for p in f.__click_params__]) return f - return wrapper diff --git a/pros/cli/upload.py b/pros/cli/upload.py index 63f132a4..2723ce46 100644 --- a/pros/cli/upload.py +++ b/pros/cli/upload.py @@ -116,6 +116,7 @@ def upload(path: Optional[str], project: Optional[c.Project], port: str, **kwarg if kwargs['remote_name'] is None: kwargs['remote_name'] = os.path.splitext(os.path.basename(path))[0] kwargs['remote_name'] = kwargs['remote_name'].replace('@', '_') + kwargs['slot'] = kwargs['slot'] or 1 kwargs['slot'] -= 1 action_to_kwarg = { @@ -146,11 +147,11 @@ def upload(path: Optional[str], project: Optional[c.Project], port: str, **kwarg device = vex.V5Device(ser) elif kwargs['target'] == 'cortex': device = vex.CortexDevice(ser).get_connected_device() - if project is not None: - device.upload_project(project, **kwargs) - else: + if os.path.isfile(path): with click.open_file(path, mode='rb') as pf: device.write_program(pf, **kwargs) + else: + device.upload_project(project, **kwargs) except Exception as e: logger(__name__).exception(e, exc_info=True) exit(1) @@ -201,8 +202,8 @@ def __str__(self): @upload_cli.command('upload-terminal', aliases=['ut'], hidden=True) @shadow_command(upload) @click.pass_context -def make_upload_terminal(ctx, **upload_kwargs): +def upload_terminal(ctx, **upload_kwargs): analytics.send("upload-terminal") from .terminal import terminal ctx.invoke(upload, **upload_kwargs) - ctx.invoke(terminal, request_banner=False) + ctx.invoke(terminal, request_banner=False) \ No newline at end of file