Source code for orion.core.cli.hunt

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
:mod:`orion.core.cli.hunt` -- Module running the optimization command
=====================================================================

.. module:: hunt
   :platform: Unix
   :synopsis: Gets an experiment and iterates over it until one of the exit conditions is met

"""

import logging

import orion.core
from orion.core.cli import base as cli
from orion.core.cli import evc as evc_cli
import orion.core.io.experiment_builder as experiment_builder
from orion.core.worker import workon

log = logging.getLogger(__name__)


[docs]def add_subparser(parser): """Add the subparser that needs to be used for this command""" hunt_parser = parser.add_parser('hunt', help='hunt help') orion_group = cli.get_basic_args_group( hunt_parser, group_name='Hunt arguments', group_help='') orion.core.config.experiment.add_arguments( orion_group, rename=dict(max_broken='--exp-max-broken', max_trials='--exp-max-trials')) orion_group.add_argument( '--max-trials', type=int, metavar='#', help="(DEPRECATED) This argument will be removed in v0.3. Use --exp-max-trials instead") worker_args_group = hunt_parser.add_argument_group( "Worker arguments (optional)", description="Arguments to automatically resolved branching events.") orion.core.config.worker.add_arguments( worker_args_group, rename=dict(max_broken='--worker-max-broken', max_trials='--worker-max-trials')) evc_cli.get_branching_args_group(hunt_parser) cli.get_user_args_group(hunt_parser) hunt_parser.set_defaults(func=main) hunt_parser.set_defaults(help_empty=True) # Print help if command is empty return hunt_parser
[docs]def main(args): """Build experiment and execute hunt command""" args['root'] = None args['leafs'] = [] # TODO: simplify when parameter parsing is refactored experiment = experiment_builder.build_from_args(args) config = experiment_builder.get_cmd_config(args) worker_config = orion.core.config.worker.to_dict() if config.get('worker'): worker_config.update(config.get('worker')) workon(experiment, **worker_config)