package commontypes // PythonTypeMap maps PostgreSQL types to Python types var PythonTypeMap = map[string]string{ // Integer types "integer": "int", "int": "int", "int4": "int", "smallint": "int", "int2": "int", "bigint": "int", "int8": "int", "serial": "int", "bigserial": "int", "smallserial": "int", // String types "text": "str", "varchar": "str", "char": "str", "character": "str", "citext": "str", "bpchar": "str", "uuid": "UUID", // Boolean "boolean": "bool", "bool": "bool", // Float types "real": "float", "float4": "float", "double precision": "float", "float8": "float", "numeric": "Decimal", "decimal": "Decimal", // Date/Time types "timestamp": "datetime", "timestamp without time zone": "datetime", "timestamp with time zone": "datetime", "timestamptz": "datetime", "date": "date", "time": "time", "time without time zone": "time", "time with time zone": "time", "timetz": "time", // Binary "bytea": "bytes", // JSON "json": "dict", "jsonb": "dict", // Array "array": "list", } // SQLToPython converts SQL types to Python types func SQLToPython(sqlType string) string { baseType := ExtractBaseType(sqlType) pyType, ok := PythonTypeMap[baseType] if !ok { pyType = "Any" } // Python uses Optional[Type] for nullable, but we return the base type return pyType }