| {{/* |
| // Copyright 2025 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| */}} |
| {{- define "GenerateSourceFile" -}} |
| # WARNING: This file is machine generated by fidlgen. |
| {{/* |
| // The type of each generated identifier will be forward referenced. The future |
| // annotations feature prevents needing to use string literals for those |
| // references. |
| */}} |
| from __future__ import annotations |
| |
| from dataclasses import dataclass |
| import sys |
| import typing |
| import enum |
| |
| import fidl |
| |
| |
| from fidl._client import EventHandlerBase, FidlClient # type: ignore[unused-ignore,unused-import] |
| from fidl._server import ServerBase # type: ignore[unused-ignore,unused-import] |
| from fidl._fidl_common import DomainError, FrameworkError, MethodInfo, FidlProtocolMarker, normalize_identifier # type: ignore[unused-ignore,unused-import] |
| |
| from abc import abstractmethod, ABC # type: ignore[unused-ignore,unused-import] |
| import collections.abc # type: ignore[unused-ignore,unused-import] |
| |
| {{ range .PythonExternalModules -}} |
| import {{ . }} |
| {{ end }} |
| |
| _UNDEFINED: typing.Any = object() |
| |
| {{ range .PythonUnsupportedTypes }} |
| class {{ .PythonName }}: |
| def __init__(self, *args: list[typing.Any], _unsupported: fidl.Unsupported, **kwargs: dict[str, typing.Any]) -> None: |
| raise NotImplementedError( |
| """ |
| {{ .Identifier }} not supported. |
| {{ range .Message }} |
| {{ . | escapeQuotes | trimSpace }} |
| {{- end }} |
| """) |
| |
| def _encode(self, encoder: fidl.Encoder, _offset: int) -> None: |
| raise NotImplementedError("{{ .Identifier }} is unsupported") |
| |
| @classmethod |
| def _decode(cls, decoder: fidl.Decoder, _offset: int) -> typing.Self: |
| raise NotImplementedError("{{ .Identifier }} is unsupported") |
| {{ end }} |
| |
| |
| {{ range .PythonStructs }} |
| {{- template "StructDeclaration" . -}} |
| {{ end -}} |
| |
| |
| {{ range .PythonTables }} |
| {{- template "TableDeclaration" . -}} |
| {{ end -}} |
| |
| |
| {{ range .PythonUnions }} |
| {{- template "UnionDeclaration" . -}} |
| {{ end -}} |
| |
| |
| {{ range .PythonEnums }} |
| {{- template "EnumDeclaration" . -}} |
| {{ end -}} |
| |
| |
| {{ range .PythonBits }} |
| {{- template "BitsDeclaration" . -}} |
| {{ end -}} |
| |
| |
| {{- if .PythonConsts }} |
| # Generated constants |
| {{ end -}} |
| {{ range .PythonConsts -}} |
| {{ .PythonName }}: {{ .PythonType.PythonName }} = {{ .PythonValue }} |
| {{ end }} |
| |
| {{- if .PythonAliases }} |
| # Generated aliases |
| {{ end -}} |
| {{- range .PythonAliases -}} |
| {{.PythonName }} = {{ .PythonAliasedName }} |
| {{ end }} |
| |
| {{ range .PythonProtocols }} |
| {{- template "ProtocolDeclaration" . -}} |
| {{ end -}} |
| {{ end }} |