From 5b184bd80f231c6b74338fd4ee7e29223f285d16 Mon Sep 17 00:00:00 2001 From: fderuiter <127706008+fderuiter@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:16:54 +0000 Subject: [PATCH] refactor: extract inline function definitions from `_get_normalizer` To reduce cognitive load and avoid the overhead of dynamically creating nested functions (closures) during runtime, the normalizer functions for optional types (str, int, bool, datetime) have been extracted to private module-level functions: - `_optional_str` - `_optional_int` - `_optional_bool` - `_optional_datetime` This aligns with the Architect manifesto (KISS, Explicit > Implicit). Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- src/imednet/models/json_base.py | 48 ++++++++++++++------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/src/imednet/models/json_base.py b/src/imednet/models/json_base.py index 7cc6d0cd..5d155d19 100644 --- a/src/imednet/models/json_base.py +++ b/src/imednet/models/json_base.py @@ -22,6 +22,22 @@ def _identity(v: Any) -> Any: return v +def _optional_str(v: Any) -> Any: + return None if v is None else parse_str_or_default(v) + + +def _optional_int(v: Any) -> Any: + return None if v is None else parse_int_or_default(v) + + +def _optional_bool(v: Any) -> Any: + return None if v is None else parse_bool(v) + + +def _optional_datetime(v: Any) -> Any: + return None if not v else parse_datetime(v) + + def _get_normalizer(cls: type[BaseModel], field_name: str) -> Callable[[Any], Any]: if cls in _NORMALIZERS and field_name in _NORMALIZERS[cls]: return _NORMALIZERS[cls][field_name] @@ -45,37 +61,13 @@ def _get_normalizer(cls: type[BaseModel], field_name: str) -> Callable[[Any], An elif origin is dict: normalizer = parse_dict_or_default elif annotation is str: - if optional: - - def normalizer(v: Any) -> Any: - return None if v is None else parse_str_or_default(v) - - else: - normalizer = parse_str_or_default + normalizer = _optional_str if optional else parse_str_or_default elif annotation is int: - if optional: - - def normalizer(v: Any) -> Any: - return None if v is None else parse_int_or_default(v) - - else: - normalizer = parse_int_or_default + normalizer = _optional_int if optional else parse_int_or_default elif annotation is bool: - if optional: - - def normalizer(v: Any) -> Any: - return None if v is None else parse_bool(v) - - else: - normalizer = parse_bool + normalizer = _optional_bool if optional else parse_bool elif annotation is datetime: - if optional: - - def normalizer(v: Any) -> Any: - return None if not v else parse_datetime(v) - - else: - normalizer = parse_datetime + normalizer = _optional_datetime if optional else parse_datetime if cls not in _NORMALIZERS: _NORMALIZERS[cls] = {}