version: "2"plugins: - name: pywasm: url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.3.0.wasmsha256: fbedae96b5ecae2380a70fb5b925fd4bff58a6cfb1f3140375d098fbab7b3a3csql: - schema: "schema.sql"queries: "query.sql"engine: postgresqlcodegen: - out: src/authorsplugin: pyoptions: package: authorsemit_sync_querier: trueemit_async_querier: trueOption: emit_pydantic_models
By default, sqlc-gen-python will emit dataclasses for the models. If you prefer to use pydantic models, you can enable this option.
with emit_pydantic_models
frompydanticimportBaseModelclassAuthor(pydantic.BaseModel): id: intname: strwithout emit_pydantic_models
importdataclasses@dataclasses.dataclass()classAuthor: id: intname: strOption: emit_str_enum
enum.StrEnum was introduce in Python 3.11.
enum.StrEnum is a subclass of str that is also a subclass of Enum. This allows for the use of Enum values as strings, compared to strings, or compared to other enum.StrEnum types.
This is convenient for type checking and validation, as well as for serialization and deserialization.
By default, sqlc-gen-python will emit (str, enum.Enum) for the enum classes. If you prefer to use enum.StrEnum, you can enable this option.
with emit_str_enum
classStatus(enum.StrEnum): """Venues can be either open or closed"""OPEN="op!en"CLOSED="clo@sed"without emit_str_enum (current behavior)
classStatus(str, enum.Enum): """Venues can be either open or closed"""OPEN="op!en"CLOSED="clo@sed"