|
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