in src/aaz_dev/cli/controller/az_operation_generator.py [0:0]
def render_schema_base(schema, cls_map, schema_kwargs=None):
if schema_kwargs is None:
schema_kwargs = {}
flags = schema_kwargs.get('flags', {})
# read_only is not inherited by class schema, so we need to set it here
if schema.read_only:
flags['read_only'] = True
if isinstance(schema, CMDClsSchemaBase):
cls_name = schema.type[1:]
schema = cls_map[cls_name].schema
else:
cls_name = getattr(schema, 'cls', None)
cls_builder_name = parse_cls_builder_name(cls_name) if cls_name else None
if schema.nullable:
schema_kwargs['nullable'] = True
if isinstance(schema, CMDAnyTypeSchemaBase):
schema_type = "AAZAnyType"
elif isinstance(schema, CMDStringSchemaBase):
schema_type = "AAZStrType"
elif isinstance(schema, CMDIntegerSchemaBase):
schema_type = "AAZIntType"
elif isinstance(schema, CMDBooleanSchemaBase):
schema_type = "AAZBoolType"
elif isinstance(schema, CMDFloatSchemaBase):
schema_type = "AAZFloatType"
elif isinstance(schema, CMDIdentityObjectSchemaBase):
schema_type = "AAZIdentityObjectType"
elif isinstance(schema, CMDObjectSchemaBase):
if schema.props or schema.discriminators:
schema_type = "AAZObjectType"
if schema.additional_props:
# treat it as AAZFreeFormDictType
schema_type = "AAZFreeFormDictType"
elif schema.additional_props:
# TODO: remove it after aaz repo updated without any_type property
if schema.additional_props.any_type is True:
schema_type = "AAZFreeFormDictType"
else:
assert schema.additional_props.item is not None
schema_type = "AAZDictType"
else:
# empty object
schema_type = "AAZObjectType"
elif isinstance(schema, CMDArraySchemaBase):
schema_type = "AAZListType"
else:
raise NotImplementedError()
if flags:
schema_kwargs['flags'] = flags
return schema_type, schema_kwargs, cls_builder_name