|
7 | 7 | import asyncio |
8 | 8 | import os |
9 | 9 | import sys |
10 | | -from typing import TYPE_CHECKING, Optional |
| 10 | +from typing import TYPE_CHECKING, Optional, Union |
11 | 11 |
|
12 | 12 | from cleanlab_tlm.errors import MissingApiKeyError, ValidationError |
13 | 13 | from cleanlab_tlm.internal.concurrency import TlmRateHandler |
@@ -75,15 +75,20 @@ def __init__( |
75 | 75 |
|
76 | 76 | self._quality_preset = quality_preset |
77 | 77 |
|
78 | | - if timeout is not None and not (isinstance(timeout, (float, int))): |
79 | | - raise ValidationError("timeout must be a integer or float value") |
| 78 | + self._timeout: Optional[Union[int, float]] = None |
| 79 | + if timeout is not None: |
| 80 | + if not isinstance(timeout, (float, int)): |
| 81 | + raise ValidationError("timeout must be a integer or float value") |
| 82 | + if timeout <= 0: |
| 83 | + raise ValidationError("timeout must be a positive value") |
| 84 | + self._timeout = timeout |
| 85 | + self._options["max_timeout"] = self._timeout |
80 | 86 |
|
81 | 87 | if verbose is not None and not isinstance(verbose, bool): |
82 | 88 | raise ValidationError("verbose must be a boolean value") |
83 | 89 |
|
84 | 90 | is_notebook_flag = is_notebook() |
85 | 91 |
|
86 | | - self._timeout = timeout if timeout is not None and timeout > 0 else None |
87 | 92 | self._verbose = verbose if verbose is not None else is_notebook_flag |
88 | 93 |
|
89 | 94 | if is_notebook_flag: |
|
0 commit comments