Source code for mednet.scripts.click
# Copyright © 2022 Idiap Research Institute <contact@idiap.ch>
#
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import click
from clapper.click import ConfigCommand as _BaseConfigCommand
[docs]
class ConfigCommand(_BaseConfigCommand):
"""A click command-class that has the properties of :py:class:`clapper.click.ConfigCommand` and adds verbatim epilog formatting."""
[docs]
class PathOrURL(click.Path):
"""A click parameter type that represents either an URL or a filesystem path.
This object may be initialized just like :py:class:`click.Path`. If the
input resembles an URL (starts with "http"), then its returned as a string.
Otherwise, it is returned depending on the way it was initialized.
Parameters
----------
*args
Positional arguments delivered to super class.
**kwargs
Keyword arguments delivered to super class.
"""
name = "path_or_url"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
[docs]
def convert(
self,
value: str | os.PathLike[str],
param: click.Parameter | None,
ctx: click.Context | None,
) -> str | bytes | os.PathLike[str]:
"""Convert input strings into parameters.
Parameters
----------
value
The value passed through the command-line.
param
The type of parameter.
ctx
The current parser context.
Returns
-------
The parsed parameter.
"""
if isinstance(value, str | bytes) and value.startswith("http"):
return value
return super().convert(value, param, ctx)