From b7da112212a7e500aaec5237be4d654340f813e8 Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:28:45 +0800 Subject: [PATCH 1/2] fix initialize for discriminator model --- .../generator/pygen/codegen/templates/model_dpg.py.jinja2 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/typespec-python/generator/pygen/codegen/templates/model_dpg.py.jinja2 b/packages/typespec-python/generator/pygen/codegen/templates/model_dpg.py.jinja2 index afffb7f94e5..541de0f0441 100644 --- a/packages/typespec-python/generator/pygen/codegen/templates/model_dpg.py.jinja2 +++ b/packages/typespec-python/generator/pygen/codegen/templates/model_dpg.py.jinja2 @@ -45,7 +45,8 @@ __flattened_items = ["{{ model.flattened_items|join('\", \"') }}"] {% endif %} - {% if not model.internal and serializer.init_line(model) %} + {% set need_init = (not model.internal) and (serializer.init_line(model) or model.discriminator)%} + {% if need_init %} @overload def __init__( self, @@ -64,7 +65,7 @@ {% endif %} {% set initialize_properties = serializer.initialize_properties(model) %} - {% if not model.internal and serializer.init_line(model) or initialize_properties %} + {% if need_init or initialize_properties %} def __init__(self, *args: Any, **kwargs: Any) -> None:{{ '# pylint: disable=useless-super-delegation' if not initialize_properties else '' }} {% for line in serializer.super_call(model) %} {{ line }} From e0cc0c4aca60bc2f65c68d3882737b6638c97ec0 Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:29:55 +0800 Subject: [PATCH 2/2] changelog --- .../fix-discriminator-initialize-2024-7-1-11-29-41.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/fix-discriminator-initialize-2024-7-1-11-29-41.md diff --git a/.chronus/changes/fix-discriminator-initialize-2024-7-1-11-29-41.md b/.chronus/changes/fix-discriminator-initialize-2024-7-1-11-29-41.md new file mode 100644 index 00000000000..2da987223c2 --- /dev/null +++ b/.chronus/changes/fix-discriminator-initialize-2024-7-1-11-29-41.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-python" +--- + +Fix initialize for model which only has discriminator property \ No newline at end of file