From 6fed4508012228daf00d5ff8dc4767205e2a0f55 Mon Sep 17 00:00:00 2001 From: Anna Tisch <8689453+annatisch@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:55:42 +1300 Subject: [PATCH] Fix discriminator handling in init_subclass method --- .../generator/pygen/codegen/templates/model_base.py.jinja2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/http-client-python/generator/pygen/codegen/templates/model_base.py.jinja2 b/packages/http-client-python/generator/pygen/codegen/templates/model_base.py.jinja2 index c4c58fe89e5..c3cfc842d53 100644 --- a/packages/http-client-python/generator/pygen/codegen/templates/model_base.py.jinja2 +++ b/packages/http-client-python/generator/pygen/codegen/templates/model_base.py.jinja2 @@ -725,6 +725,10 @@ class Model(_MyMutableMapping): def __init_subclass__(cls, discriminator: typing.Optional[str] = None) -> None: for base in cls.__bases__: if hasattr(base, "__mapping__"): + if discriminator is None: + # This could mean that a ploymorphic model has been patched without an explicit discriminator. + # We will attempt to find and replace its parent in the mapping. + discriminator = next((k for k, v in base.__mapping__.items() if v == base), None) base.__mapping__[discriminator or cls.__name__] = cls # type: ignore {% if code_model.has_padded_model_property %}