Descend one level into an include/exclude dict by ``key``, returning ``default`` when the lookup yields ``Ellipsis``. Ellipsis at this position means "all fields below" rather than a concrete set/dict to recurse into. :param items: current include/exclude value :type items: Uni
(
items: Union[set, dict, None],
key: str,
default: Any = None,
)
| 17 | |
| 18 | |
| 19 | def skip_ellipsis( |
| 20 | items: Union[set, dict, None], |
| 21 | key: str, |
| 22 | default: Any = None, |
| 23 | ) -> Union[set, dict, None]: |
| 24 | """ |
| 25 | Descend one level into an include/exclude dict by ``key``, returning |
| 26 | ``default`` when the lookup yields ``Ellipsis``. Ellipsis at this position |
| 27 | means "all fields below" rather than a concrete set/dict to recurse into. |
| 28 | |
| 29 | :param items: current include/exclude value |
| 30 | :type items: Union[set, dict, None] |
| 31 | :param key: key for nested relations to check |
| 32 | :type key: str |
| 33 | :param default: value returned when the lookup yields Ellipsis |
| 34 | :type default: Any |
| 35 | :return: nested value of the items |
| 36 | :rtype: Union[set, dict, None] |
| 37 | """ |
| 38 | result = items.get(key, {}) if isinstance(items, dict) else items |
| 39 | return result if result is not Ellipsis else default |
| 40 | |
| 41 | |
| 42 | def convert_all(items: Union[set, dict, None]) -> Union[set, dict, None]: |
no test coverage detected