|
5 | 5 | import enum |
6 | 6 | import typing as t |
7 | 7 |
|
| 8 | +from nr.date import date_format, datetime_format, format_set, time_format |
8 | 9 | from typeapi import AnnotatedTypeHint, ClassTypeHint, TypeHint |
9 | 10 |
|
10 | 11 | from databind.core.utils import T, check_instance_of, check_not_none, check_subclass_of |
11 | 12 |
|
12 | 13 | if t.TYPE_CHECKING: |
13 | | - from nr.date import date_format, datetime_format, format_set, time_format |
14 | | - |
15 | 14 | from databind.core.context import Context |
16 | 15 | from databind.core.converter import Converter |
17 | 16 | from databind.core.union import EntrypointUnionMembers, ImportUnionMembers, StaticUnionMembers, UnionMembers |
@@ -581,8 +580,9 @@ def __iter_formats(self, type_: t.Type[Formatter]) -> t.Iterable[Formatter]: |
581 | 580 | if isinstance(fmt, str): |
582 | 581 | if fmt.startswith("."): |
583 | 582 | yield self.__get_builtin_format(fmt) |
584 | | - yield type_.compile(fmt) # type: ignore |
585 | | - elif type(fmt) == type_: |
| 583 | + else: |
| 584 | + yield type_.compile(fmt) # type: ignore |
| 585 | + elif type(fmt) is type_: |
586 | 586 | yield fmt |
587 | 587 | elif isinstance(fmt, format_set): |
588 | 588 | yield from getattr(fmt, type_.__name__ + "s") |
@@ -644,9 +644,10 @@ def format(self, dt: T_Dtype) -> str: |
644 | 644 | raise self._formulate_parse_error(list(self.__iter_formats(format_t)), dt) |
645 | 645 |
|
646 | 646 | @staticmethod |
647 | | - def _formulate_parse_error(formats: t.Sequence[t.Any], s: t.Any) -> ValueError: |
| 647 | + def _formulate_parse_error(formats: t.Sequence[Formatter], s: t.Any) -> ValueError: |
648 | 648 | return ValueError( |
649 | | - f'"{s}" does not match date formats ({len(formats)}):' + "".join(f"\n | {x.format_str}" for x in formats) |
| 649 | + f'"{s}" does not match date formats ({len(formats)}):' |
| 650 | + + "".join(f"\n | {str(x) if isinstance(x, format_set) else x.format_str}" for x in formats) |
650 | 651 | ) |
651 | 652 |
|
652 | 653 |
|
|
0 commit comments