| 553 | # Else offset is checked for being in range. |
| 554 | # If it is, its integer value is returned. Else ValueError is raised. |
| 555 | def _check_utc_offset(name, offset): |
| 556 | assert name in ("utcoffset", "dst") |
| 557 | if offset is None: |
| 558 | return |
| 559 | if not isinstance(offset, timedelta): |
| 560 | raise TypeError(f"tzinfo.{name}() must return None " |
| 561 | f"or timedelta, not {type(offset).__name__!r}") |
| 562 | if not -timedelta(1) < offset < timedelta(1): |
| 563 | raise ValueError("offset must be a timedelta " |
| 564 | "strictly between -timedelta(hours=24) and " |
| 565 | f"timedelta(hours=24), not {offset!r}") |
| 566 | |
| 567 | def _check_date_fields(year, month, day): |
| 568 | year = _index(year) |