| 544 | # Else offset is checked for being in range. |
| 545 | # If it is, its integer value is returned. Else ValueError is raised. |
| 546 | def _check_utc_offset(name, offset): |
| 547 | assert name in ("utcoffset", "dst") |
| 548 | if offset is None: |
| 549 | return |
| 550 | if not isinstance(offset, timedelta): |
| 551 | raise TypeError(f"tzinfo.{name}() must return None " |
| 552 | f"or timedelta, not {type(offset).__name__!r}") |
| 553 | if not -timedelta(1) < offset < timedelta(1): |
| 554 | raise ValueError("offset must be a timedelta " |
| 555 | "strictly between -timedelta(hours=24) and " |
| 556 | f"timedelta(hours=24), not {offset!r}") |
| 557 | |
| 558 | def _check_date_fields(year, month, day): |
| 559 | year = _index(year) |