(
self,
token: str,
value: str,
parsed: dict[str, Any],
now: pendulum.DateTime,
)
| 552 | self._get_parsed_value(token, m.group(index), parsed, now) |
| 553 | |
| 554 | def _get_parsed_value( |
| 555 | self, |
| 556 | token: str, |
| 557 | value: str, |
| 558 | parsed: dict[str, Any], |
| 559 | now: pendulum.DateTime, |
| 560 | ) -> None: |
| 561 | parsed_token = self._PARSE_TOKENS[token](value) |
| 562 | |
| 563 | if "Y" in token: |
| 564 | if token == "YY": |
| 565 | if parsed_token <= 68: |
| 566 | parsed_token += 2000 |
| 567 | else: |
| 568 | parsed_token += 1900 |
| 569 | |
| 570 | parsed["year"] = parsed_token |
| 571 | elif token == "Q": |
| 572 | parsed["quarter"] = parsed_token |
| 573 | elif token in ["MM", "M"]: |
| 574 | parsed["month"] = parsed_token |
| 575 | elif token in ["DDDD", "DDD"]: |
| 576 | parsed["day_of_year"] = parsed_token |
| 577 | elif "D" in token: |
| 578 | parsed["day"] = parsed_token |
| 579 | elif "H" in token: |
| 580 | parsed["hour"] = parsed_token |
| 581 | elif token in ["hh", "h"]: |
| 582 | if parsed_token > 12: |
| 583 | raise ValueError("Invalid date") |
| 584 | |
| 585 | parsed["hour"] = parsed_token |
| 586 | elif "m" in token: |
| 587 | parsed["minute"] = parsed_token |
| 588 | elif "s" in token: |
| 589 | parsed["second"] = parsed_token |
| 590 | elif "S" in token: |
| 591 | parsed["microsecond"] = parsed_token |
| 592 | elif token in ["d", "E"]: |
| 593 | parsed["day_of_week"] = parsed_token |
| 594 | elif token in ["X", "x"]: |
| 595 | parsed["timestamp"] = parsed_token |
| 596 | elif token in ["ZZ", "Z"]: |
| 597 | negative = bool(value.startswith("-")) |
| 598 | tz = value[1:] |
| 599 | if ":" not in tz: |
| 600 | if len(tz) == 2: |
| 601 | tz = f"{tz}00" |
| 602 | |
| 603 | off_hour = tz[0:2] |
| 604 | off_minute = tz[2:4] |
| 605 | else: |
| 606 | off_hour, off_minute = tz.split(":") |
| 607 | |
| 608 | offset = ((int(off_hour) * 60) + int(off_minute)) * 60 |
| 609 | |
| 610 | if negative: |
| 611 | offset = -1 * offset |
no test coverage detected