1. Redistributing and Reassigning a QA Task

To reach the tasks and assignments repositories go to tasks and assignments.

To reach the tasks and assignments entities go to tasks and assignments.

1.1. Get QA Task and Assignments

1.1.1. Get Task

1.1.1.1. Get by ID

QAtask = dl.tasks.get(task_id='<my-task-id>')

1.1.1.2. Get by name – in a project

project = dl.projects.get(project_name='<project_name>')
QAtask = project.tasks.get(task_name='<my-qa-task-name>')

1.1.1.3. Get by name – in a dataset

dataset = project.datasets.get(dataset_name='<dataset_name>')
QAtask = project.tasks.get(task_name='<my-qa-task-name>')

1.1.1.4. Get list – in a project

tasks = project.tasks.list()

1.1.1.5. Get list – in a dataset

tasks = dataset.tasks.list()

1.1.1.6. Get Task Items

qa_task_items = QAtask.get_items()

1.1.2. Get Assignments

1.1.2.1. Get by ID

assignment = dl.assignments.get(assignment_id='<my-assignment-id>')

1.1.2.2. Get by name – in a project

project = dl.projects.get(project_name='<project_name>')
assignment = project.assignments.get(assignment_name='<my-assignment-name>')

1.1.2.3. Get by name – in a dataset

dataset = project.datasets.get(dataset_name='<dataset_name>')
assignment = dataset.assignments.get(assignment_name='<my-assignment-name>')

1.1.2.4. Get by name – in a task

task = project.tasks.get(task_name='<my-task-name>')
assignment = task.assignments.get(assignment_name='<my-assignment-name>')

1.1.2.5. Get list – in a project

assignments = project.assignments.list()

1.1.2.6. Get list – in a dataset

assignments = dataset.assignments.list()

1.1.2.7. Get list – in a task

assignments = task.assignments.list()

1.1.3. Get Assignment Items

assignment_items = assignment.get_items()

1.2. Redistribute and Reassign the QA Assignment

import dtlpy as dl
import datetime
if dl.token_expired():
    dl.login()
project = dl.projects.get(project_name='<project_name>')
dataset = project.datasets.get(dataset_name='<dataset_name>')
QAtask = dl.tasks.get(task_id='<my-task-id>')
assignment = task.assignments.get(assignment_name='<my-assignment-name>')

1.2.1. Redistribute

# load is the workload percentage for each annotator
assignment.redistribute(dl.Workload([dl.WorkloadUnit(assignee_id='<annotator1@dataloop.ai>', load=50),
                                     dl.WorkloadUnit(assignee_id='<annotator2@dataloop.ai>', load=50)]))

1.2.2. Reassign

assignment.reassign(assignee_ids['<annotator1@dataloop.ai>'])

1.3. Delete Task and Assignments

1.3.1. Delete Task

Note
In case you delete a task it will delete all its assignments as well.
QAtask.delete()

1.3.2. Delete Assignment

assignment.delete()