Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit ce854ba

Browse files
committed
Adds mustache code using nonCompliantUseDiscriminatorIfCompositionFails
1 parent d5f894f commit ce854ba

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

modules/openapi-json-schema-generator/src/main/resources/python/schemas.handlebars

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,19 +1863,44 @@ class ComposedBase(Discriminable):
18631863
path_to_schemas = oneof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
18641864
except (ApiValueError, ApiTypeError) as ex:
18651865
if discriminated_cls is not None and oneof_cls is discriminated_cls:
1866+
{{#if nonCompliantUseDiscriminatorIfCompositionFails}}
1867+
"""
1868+
suppress exception because code was generated with
1869+
nonCompliantUseDiscriminatorIfCompositionFails=true
1870+
"""
1871+
pass
1872+
{{else}}
18661873
raise ex
1874+
{{/if}}
18671875
continue
18681876
oneof_classes.append(oneof_cls)
18691877
if not oneof_classes:
1878+
{{#if nonCompliantUseDiscriminatorIfCompositionFails}}
1879+
if discriminated_cls:
1880+
"""
1881+
return without exception because code was generated with
1882+
nonCompliantUseDiscriminatorIfCompositionFails=true
1883+
"""
1884+
return {}
1885+
{{/if}}
18701886
raise ApiValueError(
18711887
"Invalid inputs given to generate an instance of {}. None "
18721888
"of the oneOf schemas matched the input data.".format(cls)
18731889
)
18741890
elif len(oneof_classes) > 1:
1891+
{{#if nonCompliantUseDiscriminatorIfCompositionFails}}
1892+
if discriminated_cls:
1893+
"""
1894+
return without exception because code was generated with
1895+
nonCompliantUseDiscriminatorIfCompositionFails=true
1896+
"""
1897+
return {}
1898+
{{/if}}
18751899
raise ApiValueError(
18761900
"Invalid inputs given to generate an instance of {}. Multiple "
18771901
"oneOf schemas {} matched the inputs, but a max of one is allowed.".format(cls, oneof_classes)
18781902
)
1903+
# exactly one class matches
18791904
return path_to_schemas
18801905

18811906
@classmethod
@@ -1896,11 +1921,27 @@ class ComposedBase(Discriminable):
18961921
other_path_to_schemas = anyof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
18971922
except (ApiValueError, ApiTypeError) as ex:
18981923
if discriminated_cls is not None and anyof_cls is discriminated_cls:
1924+
{{#if nonCompliantUseDiscriminatorIfCompositionFails}}
1925+
"""
1926+
suppress exception because code was generated with
1927+
nonCompliantUseDiscriminatorIfCompositionFails=true
1928+
"""
1929+
pass
1930+
{{else}}
18991931
raise ex
1932+
{{/if}}
19001933
continue
19011934
anyof_classes.append(anyof_cls)
19021935
update(path_to_schemas, other_path_to_schemas)
19031936
if not anyof_classes:
1937+
{{#if nonCompliantUseDiscriminatorIfCompositionFails}}
1938+
if discriminated_cls:
1939+
"""
1940+
return without exception because code was generated with
1941+
nonCompliantUseDiscriminatorIfCompositionFails=true
1942+
"""
1943+
return {}
1944+
{{/if}}
19041945
raise ApiValueError(
19051946
"Invalid inputs given to generate an instance of {}. None "
19061947
"of the anyOf schemas matched the input data.".format(cls)

0 commit comments

Comments
 (0)