Skip to content

Commit 1638408

Browse files
committed
tighter language: subtask -> prerequisite
1 parent f7b0412 commit 1638408

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

trinity/utils/datastructures.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
)
3838

3939
TFunc = TypeVar('TFunc')
40-
TSubtask = TypeVar('TSubtask', bound=Enum)
40+
TPrerequisite = TypeVar('TPrerequisite', bound=Enum)
4141
TTask = TypeVar('TTask')
4242
TTaskID = TypeVar('TTaskID')
4343

@@ -272,63 +272,63 @@ def __contains__(self, task: TTask) -> bool:
272272
return task in self._tasks
273273

274274

275-
class BaseTaskPrerequisites(Generic[TTask, TSubtask]):
275+
class BaseTaskPrerequisites(Generic[TTask, TPrerequisite]):
276276
"""
277277
Keep track of which prerequisites on a task are complete. It is used internally by
278278
:class:`OrderedTaskPreparation`
279279
"""
280-
_subtasks: Iterable[TSubtask]
281-
_completed_subtasks: Set[TSubtask]
280+
_prereqs: Iterable[TPrerequisite]
281+
_completed_prereqs: Set[TPrerequisite]
282282
_task: TTask
283283

284284
@classmethod
285-
def from_enum(cls, subtasks: Type[TSubtask]) -> 'Type[BaseTaskPrerequisites[Any, Any]]':
285+
def from_enum(cls, prereqs: Type[TPrerequisite]) -> 'Type[BaseTaskPrerequisites[Any, Any]]':
286286

287-
if len(subtasks) < 1:
288-
raise ValidationError("There must be at least one subtask to track completions")
287+
if len(prereqs) < 1:
288+
raise ValidationError("There must be at least one prerequisite to track completions")
289289

290-
return type('CompletionFor' + subtasks.__name__, (cls, ), dict(_subtasks=subtasks))
290+
return type('CompletionFor' + prereqs.__name__, (cls, ), dict(_prereqs=prereqs))
291291

292292
def __init__(self, task: TTask) -> None:
293293
self._task = task
294-
self._completed_subtasks = set()
294+
self._completed_prereqs = set()
295295

296296
@property
297297
def task(self) -> TTask:
298298
return self._task
299299

300300
@property
301301
def is_complete(self) -> bool:
302-
return len(self.remaining_subtasks) == 0
302+
return len(self.remaining_prereqs) == 0
303303

304304
def set_complete(self) -> None:
305-
for subtask in self.remaining_subtasks:
306-
self.finish(subtask)
305+
for prereq in self.remaining_prereqs:
306+
self.finish(prereq)
307307

308308
@property
309-
def remaining_subtasks(self) -> Set[TSubtask]:
310-
return set(self._subtasks).difference(self._completed_subtasks)
309+
def remaining_prereqs(self) -> Set[TPrerequisite]:
310+
return set(self._prereqs).difference(self._completed_prereqs)
311311

312-
def finish(self, subtask: TSubtask) -> None:
313-
if subtask not in self._subtasks:
312+
def finish(self, prereq: TPrerequisite) -> None:
313+
if prereq not in self._prereqs:
314314
raise ValidationError(
315-
"Subtask %r is not recognized by task %r" % (subtask, self._task)
315+
"Prerequisite %r is not recognized by task %r" % (prereq, self._task)
316316
)
317-
elif subtask in self._completed_subtasks:
317+
elif prereq in self._completed_prereqs:
318318
raise ValidationError(
319-
"Subtask %r is already complete in task %r" % (subtask, self._task)
319+
"Prerequisite %r is already complete in task %r" % (prereq, self._task)
320320
)
321321
else:
322-
self._completed_subtasks.add(subtask)
322+
self._completed_prereqs.add(prereq)
323323

324324
def __repr__(self) -> str:
325325
return (
326-
f'<{type(self).__name__}({self._task!r}, done={self._completed_subtasks!r}, '
327-
f'remaining={self.remaining_subtasks!r})>'
326+
f'<{type(self).__name__}({self._task!r}, done={self._completed_prereqs!r}, '
327+
f'remaining={self.remaining_prereqs!r})>'
328328
)
329329

330330

331-
class OrderedTaskPreparation(Generic[TTask, TTaskID, TSubtask]):
331+
class OrderedTaskPreparation(Generic[TTask, TTaskID, TPrerequisite]):
332332
"""
333333
This class is useful when a series of tasks with prerequisites must be run
334334
sequentially. The prerequisites may be finished in any order, but the
@@ -410,11 +410,11 @@ class BlockDownloads(Enum):
410410
# by default, how long should the integrator wait before pruning?
411411
_default_max_depth = 10000 # not sure how to pick a good default here
412412

413-
_prereq_tracker: Type[BaseTaskPrerequisites[TTask, TSubtask]]
413+
_prereq_tracker: Type[BaseTaskPrerequisites[TTask, TPrerequisite]]
414414

415415
def __init__(
416416
self,
417-
prerequisites: Type[TSubtask],
417+
prerequisites: Type[TPrerequisite],
418418
id_extractor: Callable[[TTask], TTaskID],
419419
dependency_extractor: Callable[[TTask], TTaskID],
420420
max_depth: int = None) -> None:
@@ -431,15 +431,15 @@ def __init__(
431431
self._max_depth = min([self._default_max_depth, max_depth])
432432

433433
# all of the tasks that have been completed, and not pruned
434-
self._tasks: Dict[TTaskID, BaseTaskPrerequisites[TTask, TSubtask]] = {}
434+
self._tasks: Dict[TTaskID, BaseTaskPrerequisites[TTask, TPrerequisite]] = {}
435435

436436
# In self._dependencies, when the key becomes ready, the task ids in the
437437
# value set *might* also become ready
438438
# (they only become ready if their prerequisites are complete)
439439
self._dependencies: Dict[TTaskID, Set[TTaskID]] = defaultdict(set)
440440

441-
# task ids are in this set if they either:
442-
# - are missing a prerequisite OR
441+
# task ids are in this set if either:
442+
# - one of their prerequisites is incomplete OR
443443
# - their dependent task is not ready
444444
self._unready: Set[TTaskID] = set()
445445

@@ -491,7 +491,7 @@ def register_tasks(self, tasks: Tuple[TTask]) -> None:
491491
depth = self._depths[dependency_id] + 1
492492
self._depths[task_id] = depth
493493

494-
def finish_prereq(self, subtask: TSubtask, tasks: Tuple[TTask]) -> None:
494+
def finish_prereq(self, prereq: TPrerequisite, tasks: Tuple[TTask]) -> None:
495495
"""For every task in tasks, mark the given prerequisite as completed"""
496496
if len(self._tasks) == 0:
497497
raise ValidationError("Cannot finish a task until set_last_completion() is called")
@@ -502,7 +502,7 @@ def finish_prereq(self, subtask: TSubtask, tasks: Tuple[TTask]) -> None:
502502
raise ValidationError(f"Cannot finish task {task_id!r} before preparing it")
503503

504504
task_completion = self._tasks[task_id]
505-
task_completion.finish(subtask)
505+
task_completion.finish(prereq)
506506
if task_completion.is_complete and self._dependency_of(task) not in self._unready:
507507
self._mark_complete(task_id)
508508

0 commit comments

Comments
 (0)