Skip to content
Snippets Groups Projects
Commit 9392809c authored by Daniel CARRON's avatar Daniel CARRON 🅱️ Committed by André Anjos
Browse files

[classification.scripts] Move upload script to classification package

parent a5099817
No related branches found
No related tags found
1 merge request!46Create common library
...@@ -37,6 +37,9 @@ classification.add_command( ...@@ -37,6 +37,9 @@ classification.add_command(
classification.add_command( classification.add_command(
importlib.import_module("..experiment", package=__name__).experiment, importlib.import_module("..experiment", package=__name__).experiment,
) )
classification.add_command(
importlib.import_module("..upload", package=__name__).upload,
)
@click.group( @click.group(
......
...@@ -8,6 +8,7 @@ import click ...@@ -8,6 +8,7 @@ import click
from clapper.click import ResourceOption, verbosity_option from clapper.click import ResourceOption, verbosity_option
from clapper.logging import setup from clapper.logging import setup
from mednet.libs.common.scripts.click import ConfigCommand from mednet.libs.common.scripts.click import ConfigCommand
from mednet.libs.common.scripts.upload import reusable_options
logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
...@@ -21,74 +22,29 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") ...@@ -21,74 +22,29 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
.. code:: sh .. code:: sh
mednet upload --experiment-folder=/path/to/results mednet classification upload --experiment-folder=/path/to/results
2. Upload an existing experiment result with an experiment name: 2. Upload an existing experiment result with an experiment name:
.. code:: sh .. code:: sh
mednet upload --experiment-folder=/path/to/results --experiment-name=exp-pasa_mc mednet classification upload --experiment-folder=/path/to/results --experiment-name=exp-pasa_mc
3. Upload an existing experiment result with a run name: 3. Upload an existing experiment result with a run name:
.. code:: sh .. code:: sh
mednet upload --experiment-folder=/path/to/results --run-name=run-1 mednet classification upload --experiment-folder=/path/to/results --run-name=run-1
4. Upload an existing experiment result with defining a size limit of 20MB for each file: 4. Upload an existing experiment result with defining a size limit of 20MB for each file:
.. code:: sh .. code:: sh
mednet upload --experiment-folder=/path/to/results --upload-limit-mb=20 mednet classification upload --experiment-folder=/path/to/results --upload-limit-mb=20
""", """,
) )
@click.option( @reusable_options
"--project-path",
"-p",
help="Path to the project where to upload model entries",
required=True,
type=str,
default="biosignal/software/mednet",
show_default=True,
cls=ResourceOption,
)
@click.option(
"--experiment-folder",
"-f",
help="Directory in which to upload results from",
required=True,
type=click.Path(
file_okay=False,
dir_okay=True,
path_type=pathlib.Path,
),
default="results",
show_default=True,
cls=ResourceOption,
)
@click.option(
"--experiment-name",
"-e",
help='A string indicating the experiment name (e.g. "exp-pasa-mc" or "exp-densenet-mc-ch")',
cls=ResourceOption,
)
@click.option(
"--run-name",
"-r",
help='A string indicating the run name (e.g. "run-1")',
cls=ResourceOption,
)
@click.option(
"--upload-limit-mb",
"-l",
help="Maximim upload size in MB (set to 0 for no limit).",
show_default=True,
required=True,
default=10,
type=click.IntRange(min=0),
cls=ResourceOption,
)
@verbosity_option(logger=logger, cls=ResourceOption, expose_value=False) @verbosity_option(logger=logger, cls=ResourceOption, expose_value=False)
def upload( def upload(
project_path: str, project_path: str,
...@@ -123,8 +79,8 @@ def upload( ...@@ -123,8 +79,8 @@ def upload(
) )
# get train files # get train files
train_log_file = experiment_folder / "trainlog.pdf"
train_folder = experiment_folder / "model" train_folder = experiment_folder / "model"
train_log_file = train_folder / "trainlog.pdf"
train_meta_file = train_folder / "meta.json" train_meta_file = train_folder / "meta.json"
train_model_file = get_checkpoint_to_run_inference(train_folder) train_model_file = get_checkpoint_to_run_inference(train_folder)
train_files = [train_meta_file, train_model_file, train_log_file] train_files = [train_meta_file, train_model_file, train_log_file]
......
# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
#
# SPDX-License-Identifier: GPL-3.0-or-later
import functools
import pathlib
import click
from clapper.click import ResourceOption
from clapper.logging import setup
# logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
logger = setup("mednet", format="%(levelname)s: %(message)s")
def reusable_options(f):
"""Wrap reusable upload script options.
This decorator equips the target function ``f`` with all (reusable)
``upload`` script options.
Parameters
----------
f
The target function to equip with options. This function must have
parameters that accept such options.
Returns
-------
The decorated version of function ``f``
"""
@click.option(
"--project-path",
"-p",
help="Path to the project where to upload model entries",
required=True,
type=str,
default="biosignal/software/mednet",
show_default=True,
cls=ResourceOption,
)
@click.option(
"--experiment-folder",
"-f",
help="Directory in which to upload results from",
required=True,
type=click.Path(
file_okay=False,
dir_okay=True,
path_type=pathlib.Path,
),
default="results",
show_default=True,
cls=ResourceOption,
)
@click.option(
"--experiment-name",
"-e",
help='A string indicating the experiment name (e.g. "exp-pasa-mc" or "exp-densenet-mc-ch")',
cls=ResourceOption,
)
@click.option(
"--run-name",
"-r",
help='A string indicating the run name (e.g. "run-1")',
cls=ResourceOption,
)
@click.option(
"--upload-limit-mb",
"-l",
help="Maximim upload size in MB (set to 0 for no limit).",
show_default=True,
required=True,
default=10,
type=click.IntRange(min=0),
cls=ResourceOption,
)
@functools.wraps(f)
def wrapper_reusable_options(*args, **kwargs):
return f(*args, **kwargs)
return wrapper_reusable_options
...@@ -4,7 +4,6 @@ from mednet.libs.classification.scripts.cli import classification ...@@ -4,7 +4,6 @@ from mednet.libs.classification.scripts.cli import classification
from mednet.libs.segmentation.scripts.cli import segmentation from mednet.libs.segmentation.scripts.cli import segmentation
from .info import info from .info import info
from .upload import upload
@click.group( @click.group(
...@@ -19,4 +18,3 @@ def cli(): ...@@ -19,4 +18,3 @@ def cli():
cli.add_command(classification) cli.add_command(classification)
cli.add_command(segmentation) cli.add_command(segmentation)
cli.add_command(info) cli.add_command(info)
cli.add_command(upload)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment