task update_metadata#
Description#
タスクのメタデータを更新します。
Examples#
基本的な使い方#
--metadata にタスクに設定するメタデータをJSON形式で指定します。
メタデータの値には文字列、数値、真偽値を指定できます。
$ annofabcli task update_metadata --project_id prj1 --task_id task1 task2 \
--metadata '{"priority":2, "required":true, "category":"202010"}'
デフォルトでは --metadata に指定したキーのみ更新されます。メタデータ自体を上書きする場合は --overwrite を指定してください。
注釈
タスクのメタデータは task list コマンドで確認できます。
task list の出力結果は情報量が多いので、以下のようにjqコマンドを使って情報を絞り込むと、見やすくなります。
$ annofabcli task list --project_id prj1 --task_id task1 --format json |
jq '[.[] | {task_id,metadata}]'
[
{
"task_id": "task1",
"metadata": {
"category": "202010",
"priority": 2,
"required": true
}
}
]
$ annofabcli task update_metadata --project_id prj1 --task_id task1 \
--metadata '{"category":"202010"}'
$ annofabcli task list --project_id prj1 --task_id task1 --format json | \
jq '[.[] | {task_id,metadata}]'
[
{
"task_id": "task1",
"metadata": {
"category": "202010"
}
}
]
# メタデータの一部のキーのみ更新する
$ annofabcli task update_metadata --project_id prj1 --task_id task1 \
--metadata '{"country":"Japan"}'
$ annofabcli task list --project_id prj1 --task_id task1 --format json | \
jq '[.[] | {task_id,metadata}]'
[
{
"task_id": "task1",
"metadata": {
"category": "202010",
"country":"Japan"
}
}
]
# メタデータ自体を上書きする
$ annofabcli task update_metadata --project_id prj1 --task_id task1 \
--metadata '{"weather":"sunny"}' --overwrite
$ annofabcli task list --project_id prj1 --task_id task1 --format json | \
jq '[.[] | {task_id,metadata}]'
[
{
"task_id": "task1",
"metadata": {
"weather": "sunny"
}
}
]
注釈
--overwrite --yes の両方を指定すると、通常より処理時間が大幅に短くなります。これは、task_idを複数指定できる patchTasksMetadata WebAPIを使ってタスクのメタデータを更新するからです。
1万件以上の大量のタスクに対して初めてメタデータを付与するときは、--overwrite --yes オプションを指定することを推奨します。
警告
タスクのメタデータを更新すると、タスクの updated_datetime (更新日時)が更新されます。
タスクの updated_datetime は、アノテーション作業以外でも更新されることに注意してください。
タスクごとにメタデータを指定する#
--metadata_by_task_id を指定すれば、タスクごとにメタデータを指定できます。
{
"task1": {"priority":1},
"task2": {"priority":2}
}
$ annofabcli task update_metadata --project_id prj1 \
--metadata_by_task_id file://all_metadata.json
--metadata_by_task_id に指定するJSONのフォーマットは、以下のjqコマンドで生成できます。
プロジェクト prj1 と prj2 で同じタスクを管理している状況で、プロジェクト prj1 のタスクのメタデータをプロジェクト prj2 にコピーするときに便利です。
$ annofabcli task list --project_id prj1 --format json | \
jq 'map({(.task_id):.metadata}) | add' > tmp.json
$ cat tmp.json
{
"task1": {"priority":1},
"task2": {"priority":2}
}
$ annofabcli task update_metadata --project_id prj2 \
--metadata_by_task_id file://tmp.json
並列処理#
以下のコマンドは、並列数4で実行します。
$ annofabcli task update_metadata --project_id prj1 \
--task_id file://input_data_id.txt \
--metadata '{"category":"202010"}' --parallelism 4 --yes
Usage Details#
タスクのメタデータを上書きして更新します。
usage: annofabcli task update_metadata [-h] [--yes]
[--endpoint_url ENDPOINT_URL]
[--annofab_user_id ANNOFAB_USER_ID]
[--annofab_password ANNOFAB_PASSWORD]
[--annofab_pat ANNOFAB_PAT]
[--logdir LOGDIR] [--disable_log]
[--debug] -p PROJECT_ID
[-t TASK_ID [TASK_ID ...]]
(--metadata METADATA | --metadata_by_task_id METADATA_BY_TASK_ID)
[--overwrite] [--parallelism {2,3,4}]
Named Arguments#
- -p, --project_id
対象のプロジェクトのproject_idを指定します。
- -t, --task_id
対象のタスクのtask_idを指定します。
file://を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。- --metadata
タスクに設定する
metadataをJSON形式で指定してください。メタデータの値には文字列、数値、真偽値のいずれかを指定してください。file://を先頭に付けると、JSON形式のファイルを指定できます。- --metadata_by_task_id
キーがタスクID, 値がメタデータ(
--metadata参照)であるオブジェクトをJSON形式で指定してください。 (ex) '{"task1": {"priority": 2}}'file://を先頭に付けると、JSON形式のファイルを指定できます。- --overwrite
指定した場合、メタデータを上書きして更新します(すでに設定されているメタデータは削除されます)。指定しない場合、
--metadataに指定されたキーのみ更新されます。--yesと一緒に指定すると、処理時間は大幅に短くなります。- --parallelism
Possible choices: 2, 3, 4
使用するプロセス数(並列度)を指定してください。指定する場合は必ず
--yesを指定してください。指定しない場合は、逐次的に処理します。
global optional arguments#
- --yes
処理中に現れる問い合わせに対して、常に
yesと回答します。- --endpoint_url
Annofab WebAPIのエンドポイントを指定します。
Default:
'https://annofab.com'- --annofab_user_id
Annofabにログインする際のユーザーID
- --annofab_password
Annofabにログインする際のパスワード
- --annofab_pat
Annofabにログインする際のパーソナルアクセストークン
- --logdir
ログファイルを保存するディレクトリを指定します。
Default:
.log- --disable_log
ログを無効にします。
- --debug
HTTPリクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。
オーナまたはアノテーションユーザロールを持つユーザで実行してください。