Skip to content

Commit f677b53

Browse files
refactor: Update errors
Following python raised exception when not all required arguments are passed (TypeError) Use ValueError for bad values Use TypeError for bad types Ref: #67
1 parent 8d2ee1d commit f677b53

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

src/thread/thread.py

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -467,10 +467,14 @@ def __init__(
467467
468468
Raises
469469
------
470-
AssertionError: invalid `dataset`
471-
AssertionError: invalid `max_threads`
470+
ValueError: `max_threads` is 0 or negative
471+
ValueError: `_length` is not an integer
472+
ValueError: empty dataset or `_length` is/returned 0
473+
TypeError: missing `_length`
474+
TypeError: missing `_get_value`
472475
"""
473-
assert 0 <= max_threads, 'max_threads cannot be set to 0'
476+
if max_threads <= 0:
477+
raise ValueError('`max_threads` must be greater than 0')
474478

475479
# Impose requirements
476480
if isinstance(dataset, SupportsLengthGetItem):
@@ -480,29 +484,33 @@ def __init__(
480484
get_value = _get_value or dataset.__class__.__getitem__
481485

482486
elif isinstance(dataset, SupportsLength):
483-
assert (
484-
_get_value
485-
), '`_get_value` must be set if `dataset` does not support `__getitem__`'
487+
if not _get_value:
488+
raise TypeError(
489+
'`_get_value` must be set if `dataset` does not support `__getitem__`'
490+
)
486491
_length = _length(dataset) if callable(_length) else _length
487492
length = len(dataset) if _length is None else _length
488493

489494
get_value = _get_value
490495

491496
elif isinstance(dataset, SupportsGetItem):
492-
assert (
493-
_length
494-
), '`_length` must be set if `dataset` does not support `__len__`'
497+
if not _length:
498+
raise TypeError(
499+
'`_length` must be set if `dataset` does not support `__len__`'
500+
)
495501
length = _length(dataset) if callable(_length) else _length
496502

497503
get_value = _get_value or dataset.__class__.__getitem__
498504

499505
else:
500-
assert (
501-
_length
502-
), '`_length` must be set if `dataset` does not support `__len__`'
503-
assert (
504-
_get_value
505-
), '`_get_value` must be set if `dataset` does not support `__getitem__`'
506+
if not _length:
507+
raise TypeError(
508+
'`_length` must be set if `dataset` does not support `__len__`'
509+
)
510+
if not _get_value:
511+
raise TypeError(
512+
'`_get_value` must be set if `dataset` does not support `__getitem__`'
513+
)
506514

507515
length = _length
508516
get_value = _get_value
@@ -511,7 +519,8 @@ def __init__(
511519
raise TypeError('`_length` must be an integer')
512520
if length <= 0:
513521
raise ValueError('dataset cannot be empty')
514-
assert get_value, '`_get_value` must be set'
522+
if not get_value:
523+
raise TypeError('`_get_value` must be set')
515524

516525
self._length = length
517526
self._retrieve_value = get_value

tests/test_dataframe_compatibility.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ def test_LO_init() -> None:
5252

5353

5454
def test_LO_init_missingGetValueError_nothing() -> None:
55-
with pytest.raises(AssertionError):
55+
with pytest.raises(TypeError):
5656
ParallelProcessing(
5757
function=lambda x: x,
5858
dataset=DummyLengthOnly(10), # type: ignore
5959
)
6060

6161

6262
def test_LO_init_missingGetValueError_lengthNum() -> None:
63-
with pytest.raises(AssertionError):
63+
with pytest.raises(TypeError):
6464
ParallelProcessing(
6565
function=lambda x: x,
6666
dataset=DummyLengthOnly(10), # type: ignore
@@ -69,7 +69,7 @@ def test_LO_init_missingGetValueError_lengthNum() -> None:
6969

7070

7171
def test_LO_init_missingGetValueError_lengthFunc() -> None:
72-
with pytest.raises(AssertionError):
72+
with pytest.raises(TypeError):
7373
ParallelProcessing(
7474
function=lambda x: x,
7575
dataset=DummyLengthOnly(10), # type: ignore

0 commit comments

Comments
 (0)