scythe-codegen 0.20.2

Polyglot code generation backends for scythe
Documentation
[backend]
name = "python-psycopg3"
language = "python"
file_extension = "py"
engine = "postgresql"
description = "Python code generation targeting psycopg3"

[types.scalars]
bool = "bool"
int16 = "int"
int32 = "int"
int64 = "int"
float32 = "float"
float64 = "float"
string = "str"
bytes = "bytes"
uuid = "uuid.UUID"
decimal = "decimal.Decimal"
date = "datetime.date"
time = "datetime.time"
time_tz = "datetime.time"
datetime = "datetime.datetime"
datetime_tz = "datetime.datetime"
interval = "datetime.timedelta"
json = "dict[str, Any]"
inet = "str"

[types.containers]
array = "list[{T}]"
nullable = "{T} | None"
range = "psycopg.types.range.Range[{T}]"
json_typed = "{T}"
json_nested = "{T}"

[naming]
struct_case = "PascalCase"
fn_case = "snake_case"
enum_variant_case = "SCREAMING_SNAKE_CASE"
row_suffix = "Row"
sanitize_field_names = true
reserved = [
  "and",
  "as",
  "assert",
  "async",
  "await",
  "break",
  "class",
  "continue",
  "def",
  "del",
  "elif",
  "else",
  "except",
  "false",
  "finally",
  "for",
  "from",
  "global",
  "if",
  "import",
  "in",
  "is",
  "lambda",
  "none",
  "nonlocal",
  "not",
  "or",
  "pass",
  "raise",
  "return",
  "true",
  "try",
  "while",
  "with",
  "yield",
]

[imports.rules]
"uuid." = "import uuid"
"datetime." = "import datetime"
"decimal." = "import decimal"
"dict[" = "from typing import Any"
"psycopg.types.range." = "import psycopg.types.range"