Example #1
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    parser.add_argument("--task_history_time_threshold", type=int, default=180, help="1履歴、何分以上を検知対象とするか。")
    parser.add_argument("--import_file_path", type=str, help="importするタスク履歴イベント全件ファイル,指定しない場合はタスク履歴イベント全件を新規取得する")

    argument_parser.add_output()
    parser.add_argument(
        "-p",
        "--project_id",
        type=str,
        required=True,
        nargs="+",
        help="対象のプロジェクトのproject_idを指定します。複数指定可、但しtask_idを指定した場合は1つしか指定できません。"
        "`file://`を先頭に付けると、project_idの一覧が記載されたファイルを指定できます。",
    )
    parser.add_argument(
        "-t",
        "--task_id",
        type=str,
        nargs="+",
        help="対象のプロジェクトのtask_idを指定します。複数指定可、但しtimeを指定した場合は1つしか指定できません。"
        "`file://`を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。",
    )
    parser.add_argument(
        "--time",
        type=str,
        nargs="+",
        help="検索対象の時間を指定します。(%%Y/%%m/%%d %%H:%%i:%%s)",
    )
    parser.add_argument("--add", action="store_true", help="出力する際に追記で書き込む")

    parser.set_defaults(subcommand_func=main)
Example #2
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)
    time_unit_choices = [e.value for e in TimeUnitTarget]
    format_choices = [e.value for e in FormatTarget]
    parser.add_argument(
        "-p",
        "--project_id",
        type=str,
        required=True,
        nargs="+",
        help=
        "集計対象のプロジェクトのproject_idを指定します。複数指定した場合は合計値を出力します。`file://`を先頭に付けると、project_idの一覧が記載されたファイルを指定できます。",
    )
    parser.add_argument(
        "-u",
        "--user_id",
        type=str,
        nargs="+",
        default=None,
        help="集計対象のユーザのuser_idに部分一致するものを集計します。"
        "指定しない場合は、プロジェクトメンバが指定されます。`file://`を先頭に付けると、user_idの一覧が記載されたファイルを指定できます。",
    )
    parser.add_argument("--start_date",
                        type=str,
                        required=True,
                        help="集計開始日(YYYY-mm-dd)")
    parser.add_argument("--end_date",
                        type=str,
                        required=True,
                        help="集計終了日(YYYY-mm-dd)")

    parser.add_argument("--time_unit",
                        type=str,
                        default="h",
                        choices=time_unit_choices,
                        help="出力の時間単位(h/m/s)")
    parser.add_argument(
        "-f",
        "--format",
        type=str,
        choices=format_choices,
        default="details",
        help="出力する際のフォーマットです。デフォルトは'details'です。"
        "details:日毎・人毎の詳細な値を出力する, "
        "total:期間中の合計値だけを出力する, "
        "by_name_total:人毎の集計の合計値を出力する, "
        "column_list:列固定で詳細な値を出力する, "
        "column_list_per_project:列固定で詳細な値をプロジェクトごとに出力する, ",
    )
    parser.add_argument("--add_project_id",
                        action="store_true",
                        help="出力する際にprojectidを出力する")
    argument_parser.add_output(required=False)

    parser.set_defaults(subcommand_func=main)
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    parser.add_argument(
        "--task_json",
        type=str,
        help=
        "タスク情報が記載されたJSONファイルのパスを指定してます。JSONファイルは`$ annofabcli project download task`コマンドで取得できます。"
        "指定しない場合は、AnnoFabからタスク全件ファイルをダウンロードします。",
    )

    parser.add_argument(
        "--latest",
        action="store_true",
        help="最新のタスク一覧ファイルを参照します。このオプションを指定すると、タスク一覧ファイルを更新するのに数分待ちます。")

    parser.add_argument(
        "--wait_options",
        type=str,
        help="タスク一覧ファイルの更新が完了するまで待つ際のオプションを、JSON形式で指定してください。"
        "`file://`を先頭に付けるとjsonファイルを指定できます。"
        'デフォルは`{"interval":60, "max_tries":360}` です。'
        "`interval`:完了したかを問い合わせる間隔[秒], "
        "`max_tires`:完了したかの問い合わせを最大何回行うか。",
    )

    argument_parser.add_csv_format()
    argument_parser.add_output()

    parser.set_defaults(subcommand_func=main)
Example #4
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_csv_format()
    argument_parser.add_output()

    parser.set_defaults(subcommand_func=main)
Example #5
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)
    argument_parser.add_project_id()
    argument_parser.add_task_id(required=False)
    argument_parser.add_output()

    parser.add_argument(
        "--parse_annotation_zip",
        action="store_true",
        help="アノテーションzipから範囲外のアノテーション情報を取得します。ただし、範囲外の終了時間は存在しません。")

    parser.set_defaults(subcommand_func=main)
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    parser.add_argument(
        "-org",
        "--organization",
        required=True,
        type=str,
        nargs="+",
        help="出力対象の組織名を指定してください。`file://`を先頭に付けると、組織名の一覧が記載されたファイルを指定できます。",
    )

    argument_parser.add_format(
        choices=[FormatArgument.CSV, FormatArgument.JSON, FormatArgument.PRETTY_JSON, FormatArgument.USER_ID_LIST],
        default=FormatArgument.CSV,
    )
    argument_parser.add_output()
    argument_parser.add_csv_format()
    argument_parser.add_query()
    parser.set_defaults(subcommand_func=main)
Example #7
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()

    parser.add_argument(
        "--annotation",
        type=str,
        required=True,
        help="Simpleアノテーションと同じフォルダ構成のzipファイル or ディレクトリのパスを指定してください。" "タスクの状態が作業中/完了の場合はインポートしません。",
    )

    argument_parser.add_task_id(required=False)

    parser.add_argument(
        "--overwrite",
        action="store_true",
        help="指定した場合、すでに存在するアノテーションを上書きします(入力データ単位)。" "指定しなければ、アノテーションのインポートをスキップします。",
    )

    parser.add_argument(
        "--force", action="store_true", help="過去に割り当てられていて現在の担当者が自分自身でない場合、タスクの担当者を自分自身に変更してからアノテーションをインポートします。"
    )

    parser.set_defaults(subcommand_func=main)
Example #8
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_task_id()

    example_annotation_query = (
        '{"label_name_en": "car", "attributes":[{"additional_data_definition_name_en": "occluded", "flag": "true"}]}'
    )
    parser.add_argument(
        "-aq",
        "--annotation_query",
        type=str,
        required=False,
        help="削除対象のアノテーションを検索する条件をJSON形式で指定します。"
        "'label_id' または 'label_name_en'のいずれかは必ず指定してください。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。"
        f"(ex): `{example_annotation_query}`",
    )

    parser.add_argument("--force", action="store_true", help="完了状態のタスクのアノテーションを削除します。")
    parser.add_argument(
        "--backup",
        type=str,
        required=False,
        help="アノテーションのバックアップを保存するディレクトリを指定してください。アノテーションの復元は'annotation restore'コマンドで実現できます。",
    )
    parser.set_defaults(subcommand_func=main)
Example #9
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)
    argument_parser.add_project_id()
    argument_parser.add_input_data_id(required=True)

    parser.add_argument(
        "--metadata",
        required=True,
        type=str,
        help="入力データに設定する`metadata`をJSON形式で指定してください。メタデータの値は文字列です。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。",
    )

    parser.add_argument(
        "--overwrite",
        action="store_true",
        help=
        "指定した場合、メタデータを上書きして更新します(すでに設定されているメタデータは削除されます)。指定しない場合、`--metadata`に指定されたキーのみ更新されます。",
    )

    parser.add_argument(
        "--parallelism",
        type=int,
        help=
        "使用するプロセス数(並列度)を指定してください。指定する場合は必ず'--yes'を指定してください。指定しない場合は、逐次的に処理します。"
    )

    parser.set_defaults(subcommand_func=main)
Example #10
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()

    parser.add_argument(
        "--csv",
        type=str,
        required=True,
        help=
        ("プロジェクトメンバが記載されたCVファイルのパスを指定してください。"
         "CSVのフォーマットは、「1列目:user_id(required), 2列目:member_role(required), "
         "3列目:sampling_inspection_rate, 4列目:sampling_acceptance_rate, ヘッダ行なし, カンマ区切り」です。"
         "member_roleは `owner`, `worker`, `accepter`, `training_data_user` のいずれかです。"
         "sampling_inspection_rate, sampling_acceptance_rate を省略した場合は未設定になります。"
         "ただし自分自身は登録しません。"),
    )

    parser.add_argument("--delete",
                        action="store_true",
                        help="CSVファイルに記載されていないプロジェクトメンバを削除します。ただし自分自身は削除しません。")

    parser.set_defaults(subcommand_func=main)
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()

    parser.add_argument(
        "--task_history_json",
        type=Path,
        help=
        "タスク履歴情報が記載されたJSONファイルのパスを指定してます。JSONファイルは`$ annofabcli project download task_history`コマンドで取得できます。"
        "指定しない場合は、AnnoFabからタスク履歴全件ファイルをダウンロードします。",
    )

    parser.add_argument("--start_date", type=str, help="集計対象の開始日(YYYY-mm-dd)")
    parser.add_argument("--end_date", type=str, help="集計対象の終了日(YYYY-mm-dd)")

    argument_parser.add_csv_format()
    argument_parser.add_output()

    parser.set_defaults(subcommand_func=main)
Example #12
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_task_id()

    parser.add_argument("-o",
                        "--output_dir",
                        type=str,
                        required=True,
                        help="出力先ディレクトリのパス")

    parser.set_defaults(subcommand_func=main)
Example #13
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_task_id()

    EXAMPLE_ANNOTATION_QUERY = (
        '{"label_name_en": "car", "attributes":[{"additional_data_definition_name_en": "occluded", "flag": true}]}'
    )
    parser.add_argument(
        "-aq",
        "--annotation_query",
        type=str,
        required=True,
        help="変更対象のアノテーションを検索する条件をJSON形式で指定します。"
        "'label_id' または 'label_name_en'のいずれかは必ず指定してください。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。"
        f"(ex): `{EXAMPLE_ANNOTATION_QUERY}`",
    )

    EXAMPLE_ATTIRBUTES = '[{"additional_data_definition_name_en": "occluded", "flag": false}]'
    parser.add_argument(
        "--attributes",
        type=str,
        required=True,
        help="変更後の属性をJSON形式で指定します。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。"
        f"(ex): `{EXAMPLE_ATTIRBUTES}`",
    )

    parser.add_argument("--force",
                        action="store_true",
                        help="完了状態のタスクのアノテーション属性も変更します。")

    parser.add_argument(
        "--change_by",
        type=str,
        choices=[ChangeBy.TASK.value, ChangeBy.INPUT_DATA.value],
        default=ChangeBy.TASK.value,
        help="アノテーション属性の変更単位を指定してください。[Deprecated] 廃止される可能性があります。",
    )

    parser.add_argument(
        "--backup",
        type=str,
        required=False,
        help=
        "アノテーションのバックアップを保存するディレクトリを指定してください。アノテーションの復元は'annotation restore'コマンドで実現できます。",
    )
    parser.set_defaults(subcommand_func=main)
Example #14
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    parser.add_argument("--annotation",
                        type=str,
                        help="アノテーションzip、またはzipを展開したディレクトリを指定します。"
                        "指定しない場合はAnnoFabからダウンロードします。")
    parser.add_argument("-o",
                        "--output_dir",
                        type=str,
                        required=True,
                        help="出力ディレクトリのパス")

    parser.add_argument(
        "--group_by",
        type=str,
        choices=[GroupBy.TASK_ID.value, GroupBy.INPUT_DATA_ID.value],
        default=GroupBy.TASK_ID.value,
        help="アノテーションの個数をどの単位で集約するかを指定してます。デフォルトは'task_id'です。",
    )

    parser.add_argument(
        "-tq",
        "--task_query",
        type=str,
        help=
        "集計対象タスクを絞り込むためのクエリ条件をJSON形式で指定します。使用できるキーは task_id, status, phase, phase_stage です。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。",
    )
    argument_parser.add_task_id(required=False)

    parser.add_argument(
        "--latest",
        action="store_true",
        help=
        "'--annotation'を指定しないとき、最新のアノテーションzipを参照します。このオプションを指定すると、アノテーションzipを更新するのに数分待ちます。",
    )

    parser.add_argument(
        "--wait_options",
        type=str,
        help="アノテーションzipの更新が完了するまで待つ際のオプションを、JSON形式で指定してください。"
        "`file://`を先頭に付けるとjsonファイルを指定できます。"
        'デフォルは`{"interval":60, "max_tries":360}` です。'
        "`interval`:完了したかを問い合わせる間隔[秒], "
        "`max_tires`:完了したかの問い合わせを最大何回行うか。",
    )

    parser.set_defaults(subcommand_func=main)
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_task_id(
        required=False,
        help_message="対象のタスクのtask_idを指定します。 "
        "`--inspection_comment_json`を指定しないときは、必須です。"
        "`file://`を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。",
    )

    reply_comment_group = parser.add_mutually_exclusive_group()
    reply_comment_group.add_argument("--only_reply",
                                     action="store_true",
                                     help="返信コメントのみを出力する。")
    reply_comment_group.add_argument("--exclude_reply",
                                     action="store_true",
                                     help="返信コメントを除外して出力する。")

    parser.add_argument(
        "--inspection_comment_json",
        type=str,
        help=
        "検査コメント情報が記載されたJSONファイルのパスを指定すると、JSONに記載された情報を元に検査コメント一覧を出力します。指定しない場合、全件ファイルをダウンロードします。"
        "JSONファイルは`$ annofabcli project download inspection_comment`コマンドで取得できます。",
    )

    argument_parser.add_format(
        choices=[
            FormatArgument.CSV,
            FormatArgument.JSON,
            FormatArgument.PRETTY_JSON,
            FormatArgument.INSPECTION_ID_LIST,
        ],
        default=FormatArgument.CSV,
    )
    argument_parser.add_output()
    argument_parser.add_csv_format()

    parser.set_defaults(subcommand_func=main)
Example #16
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    parser.add_argument(
        "--annotation",
        type=Path,
        required=True,
        help="AnnoFabからダウンロードしたアノテーションzip、またはzipを展開したディレクトリを指定してください。")

    parser.add_argument("--image_dir",
                        type=Path,
                        required=True,
                        help="画像が存在するディレクトリを指定してください。")

    parser.add_argument(
        "--input_data_id_csv",
        type=Path,
        required=True,
        help="'input_data_id'と`--image_dir`配下の画像ファイルを紐付けたCSVを指定してください。"
        "CSVのフォーマットは、「1列目:input_data_id, 2列目:画像ファイルのパス」です。"
        "詳細は https://annofab-cli.readthedocs.io/ja/latest/command_reference/filesystem/draw_annotation.html を参照してください。",
    )

    parser.add_argument(
        "--label_color",
        type=str,
        help=
        'label_nameとRGBの関係をJSON形式で指定します。ex) `{"dog":[255,128,64], "cat":[0,0,255]}`'
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。",
    )

    parser.add_argument(
        "-o",
        "--output_dir",
        type=Path,
        required=True,
        help="出力先ディレクトリのパスを指定してください。ディレクトリの構造はアノテーションzipと同じです。")

    parser.add_argument(
        "--label_name",
        type=str,
        nargs="+",
        required=False,
        help="描画対象のアノテーションのlabel_nameを指定します。指定しない場合は、すべてのlabel_nameが描画対象になります。"
        "`file://`を先頭に付けると、label_name の一覧が記載されたファイルを指定できます。",
    )

    parser.add_argument(
        "--polyline_label",
        type=str,
        nargs="+",
        required=False,
        help="ポリラインのlabel_nameを指定してください。"
        "2021/07時点ではアノテーションzipからポリラインかポリゴンか判断できないため、コマンドライン引数からポリラインのlabel_nameを指定する必要があります。"
        "`file://`を先頭に付けると、label_name の一覧が記載されたファイルを指定できます。"
        "【注意】アノテーションzipでポリラインかポリゴンかを判断できるようになれば、このオプションは削除する予定です。",
    )

    parser.add_argument(
        "--drawing_options",
        type=str,
        help='描画オプションをJSON形式で指定します。ex) `{"line_width":3}`'
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。",
    )

    argument_parser.add_task_id(
        required=False,
        help_message=("描画対象であるタスクのtask_idを指定します。"
                      "指定しない場合、すべてのタスクに含まれるアノテーションが描画されます。"
                      "`file://`を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。"),
    )

    parser.add_argument(
        "-tq",
        "--task_query",
        type=str,
        help=
        "描画対象のタスクを絞り込むためのクエリ条件をJSON形式で指定します。使用できるキーは task_id, status, phase, phase_stage です。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。",
    )

    parser.set_defaults(subcommand_func=main)
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()
    argument_parser.add_task_id(
        required=True,
        help_message="対象のタスクのtask_idを指定します。 " "`file://`を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。",
    )

    reply_comment_group = parser.add_mutually_exclusive_group()
    reply_comment_group.add_argument("--only_reply", action="store_true", help="返信コメントのみを出力する。")
    reply_comment_group.add_argument("--exclude_reply", action="store_true", help="返信コメントを除外して出力する。")

    argument_parser.add_format(
        choices=[
            FormatArgument.CSV,
            FormatArgument.JSON,
            FormatArgument.PRETTY_JSON,
            FormatArgument.INSPECTION_ID_LIST,
        ],
        default=FormatArgument.CSV,
    )
    argument_parser.add_output()
    argument_parser.add_csv_format()
    argument_parser.add_query()

    parser.set_defaults(subcommand_func=main)
Example #18
0
def parse_args(parser: argparse.ArgumentParser):
    argument_parser = ArgumentParser(parser)

    argument_parser.add_project_id()

    parser.add_argument(
        "-iq",
        "--input_data_query",
        type=str,
        help="入力データの検索クエリをJSON形式で指定します。"
        "`file://`を先頭に付けると、JSON形式のファイルを指定できます。"
        "指定できるキーは、`input_data_id`, `input_data_name`, `input_data_path`です。",
    )

    parser.add_argument(
        "-i",
        "--input_data_id",
        type=str,
        nargs="+",
        help="対象のinput_data_idを指定します。"
        "`file://`を先頭に付けると、input_data_idの一覧が記載されたファイルを指定できます。",
    )

    parser.add_argument(
        "--input_data_json",
        type=Path,
        help="入力データ情報が記載されたJSONファイルのパスを指定すると、JSONに記載された情報を元に入力データ一覧を出力します。"
        "指定しない場合、全件ファイルをダウンロードします。"
        "JSONファイルは`$ annofabcli project download input_data`コマンドで取得できます。",
    )

    parser.add_argument(
        "--latest",
        action="store_true",
        help="最新の入力データ一覧ファイルを参照します。このオプションを指定すると、入力データ一覧ファイルを更新するのに約5分以上待ちます。")

    parser.add_argument(
        "--wait_options",
        type=str,
        help="入力データ一覧ファイルの更新が完了するまで待つ際のオプションを、JSON形式で指定してください。"
        "`file://`を先頭に付けるとjsonファイルを指定できます。"
        'デフォルは`{"interval":60, "max_tries":360}` です。'
        "`interval`:完了したかを問い合わせる間隔[秒], "
        "`max_tires`:完了したかの問い合わせを最大何回行うか。",
    )

    argument_parser.add_format(
        choices=[
            FormatArgument.CSV,
            FormatArgument.JSON,
            FormatArgument.PRETTY_JSON,
            FormatArgument.INPUT_DATA_ID_LIST,
        ],
        default=FormatArgument.CSV,
    )
    argument_parser.add_output()
    argument_parser.add_csv_format()

    argument_parser.add_query()
    parser.set_defaults(subcommand_func=main)