Skip to content

Commit 1e39cec

Browse files
feat: Validate and write length
1 parent c3bb83b commit 1e39cec

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/thread/thread.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ class ParallelProcessing(Generic[_Target_P, _Target_T, _Dataset_T]):
346346
Type-Safe and provides more functionality on top
347347
"""
348348

349+
_length: int
349350
_threads: List[_ThreadWorker]
350351
_completed: int
351352

@@ -436,9 +437,16 @@ def __init__(
436437
AssertionError: invalid `dataset`
437438
AssertionError: invalid `max_threads`
438439
"""
439-
assert len(dataset) > 0, 'dataset cannot be empty'
440440
assert 0 <= max_threads, 'max_threads cannot be set to 0'
441441

442+
443+
_length = _length(dataset) if callable(_length) else _length
444+
_length = len(dataset) if isinstance(dataset, SupportsLength) else _length
445+
446+
assert isinstance(_length, int), '`_length` must be an integer'
447+
assert _length > 0, 'dataset cannot be empty'
448+
449+
self._length = _length
442450
self._threads = []
443451
self._completed = 0
444452

0 commit comments

Comments
 (0)