Commit b404f0d5 authored by Amir MOHAMMADI's avatar Amir MOHAMMADI

Merge branch 'annotate' into 'master'

Documentation changes in bob bio annotate

See merge request !168
parents d1351af8 792c7b8a
Pipeline #21757 passed with stages
in 16 minutes and 10 seconds
......@@ -5,66 +5,49 @@ import json
import click
from os.path import dirname, isfile, expanduser
from bob.extension.scripts.click_helper import (
verbosity_option, ConfigCommand, ResourceOption)
verbosity_option, ConfigCommand, ResourceOption, log_parameters)
from import create_directories_safe
from import indices
logger = logging.getLogger(__name__)
@click.command(entry_point_group='', cls=ConfigCommand)
$ bob bio annotate -vvv -d <database> -a <annotator> -o /tmp/annotations
$ jman submit --array 64 -- bob bio annotate ... --array 64
@click.command(entry_point_group='', cls=ConfigCommand,
@click.option('--database', '-d', required=True, cls=ResourceOption,
help='''The database that you want to annotate.''')
@click.option('--annotator', '-a', required=True, cls=ResourceOption,
@click.option('--output-dir', '-o', required=True, cls=ResourceOption)
@click.option('--force', '-f', is_flag=True, cls=ResourceOption)
@click.option('--array', type=click.INT, default=1, cls=ResourceOption)
help='A callable that takes the database and a sample (biofile) '
'of the database and returns the annotations in a dictionary.')
@click.option('--output-dir', '-o', required=True, cls=ResourceOption,
help='The directory to save the annotations.')
@click.option('--force', '-f', is_flag=True, cls=ResourceOption,
help='Whether to overwrite existing annotations.')
@click.option('--array', type=click.INT, default=1, cls=ResourceOption,
help='Use this option alongside gridtk to submit this script as '
'an array job.')
@click.option('--database-directories-file', cls=ResourceOption,
help='(Deprecated) To support loading of old databases.')
def annotate(database, annotator, output_dir, force, array,
database_directories_file, **kwargs):
"""Annotates a database.
The annotations are written in text file (json) format which can be read
back using :any:`bob.db.base.read_annotation_file` (annotation_type='json')
database : :any:``
The database that you want to annotate. Can be a ````
entry point or a path to a Python file which contains a variable
named `database`.
annotator : callable
A function that takes the database and a sample (biofile) of the
database and returns the annotations in a dictionary. Can be a
```` entry point or a path to a Python file which
contains a variable named `annotator`.
output_dir : str
The directory to save the annotations.
force : bool, optional
Whether to overwrite existing annotations.
array : int, optional
Use this option alongside gridtk to submit this script as an array job.
verbose : int, optional
Increases verbosity (see help for --verbose).
[CONFIG]... Configuration files. It is possible to pass one or
several Python files (or names of ````
entry points) which contain the parameters listed
above as Python variables. The options through the
command-line (see below) will override the values of
configuration files.
logger.debug('database: %s', database)
logger.debug('annotator: %s', annotator)
logger.debug('force: %s', force)
logger.debug('output_dir: %s', output_dir)
logger.debug('array: %s', array)
logger.debug('database_directories_file: %s', database_directories_file)
logger.debug('kwargs: %s', kwargs)
# Some databases need their original_directory to be replaced
......@@ -25,7 +25,7 @@ logger = logging.getLogger("")
@click.argument('database', required=True)
def baseline(ctx, baseline, database):
def baseline(ctx, baseline, database, **kwargs):
"""Run a biometric recognition baseline.
......@@ -65,7 +65,7 @@ def baseline(ctx, baseline, database):
sub_directory = os.path.join(database, baseline)
sub_directory = baseline
logger.debug('Database groups are %s', database_data["groups"])
# call verify with newly generated config file. We will create a new config
......@@ -87,7 +87,7 @@ def write_scores_to_file(neg, pos, filename, n_sys=1, five_col=False):
@click.option('-n', '--n-sys', default=1, type=click.INT, show_default=True)
@click.option('--five-col/--four-col', default=False, show_default=True)
def gen(outdir, mean_match, mean_non_match, n_sys, five_col):
def gen(outdir, mean_match, mean_non_match, n_sys, five_col, **kwargs):
"""Generate random scores.
Generates random scores in 4col or 5col format. The scores are generated
using Gaussian distribution whose mean is an input
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment