LSST Applications g0603fd7c41+501e3db9f9,g0aad566f14+23d8574c86,g0dd44d6229+a1a4c8b791,g2079a07aa2+86d27d4dc4,g2305ad1205+a62672bbc1,g2bbee38e9b+047b288a59,g337abbeb29+047b288a59,g33d1c0ed96+047b288a59,g3a166c0a6a+047b288a59,g3d1719c13e+23d8574c86,g487adcacf7+cb7fd919b2,g4be5004598+23d8574c86,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+4a9e435310,g63cd9335cc+585e252eca,g858d7b2824+23d8574c86,g88963caddf+0cb8e002cc,g99cad8db69+43388bcaec,g9ddcbc5298+9a081db1e4,ga1e77700b3+a912195c07,gae0086650b+585e252eca,gb0e22166c9+60f28cb32d,gb2522980b2+793639e996,gb3a676b8dc+b4feba26a1,gb4b16eec92+63f8520565,gba4ed39666+c2a2e4ac27,gbb8dafda3b+a5d255a82e,gc120e1dc64+d820f8acdb,gc28159a63d+047b288a59,gc3e9b769f7+f4f1cc6b50,gcf0d15dbbd+a1a4c8b791,gdaeeff99f8+f9a426f77a,gdb0af172c8+b6d5496702,ge79ae78c31+047b288a59,w.2024.19
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.dax.apdb.sql.modelToSql.GUID Class Reference
Inheritance diagram for lsst.dax.apdb.sql.modelToSql.GUID:

Public Member Functions

sqlalchemy.types.TypeEngine load_dialect_impl (self, sqlalchemy.engine.Dialect dialect)
 
str|None process_bind_param (self, Any value, sqlalchemy.engine.Dialect dialect)
 
uuid.UUID|None process_result_value (self, str|uuid.UUID|None value, sqlalchemy.engine.Dialect dialect)
 

Static Public Attributes

 impl = sqlalchemy.CHAR
 
bool cache_ok = True
 

Detailed Description

Platform-independent GUID type.

Uses PostgreSQL's UUID type, otherwise uses CHAR(32), storing as
stringified hex values.

Definition at line 40 of file modelToSql.py.

Member Function Documentation

◆ load_dialect_impl()

sqlalchemy.types.TypeEngine lsst.dax.apdb.sql.modelToSql.GUID.load_dialect_impl ( self,
sqlalchemy.engine.Dialect dialect )

Definition at line 51 of file modelToSql.py.

51 def load_dialect_impl(self, dialect: sqlalchemy.engine.Dialect) -> sqlalchemy.types.TypeEngine:
52 if dialect.name == "postgresql":
53 return dialect.type_descriptor(UUID())
54 else:
55 return dialect.type_descriptor(sqlalchemy.CHAR(32))
56

◆ process_bind_param()

str | None lsst.dax.apdb.sql.modelToSql.GUID.process_bind_param ( self,
Any value,
sqlalchemy.engine.Dialect dialect )

Definition at line 57 of file modelToSql.py.

57 def process_bind_param(self, value: Any, dialect: sqlalchemy.engine.Dialect) -> str | None:
58 if value is None:
59 return value
60
61 # Coerce input to UUID type, in general having UUID on input is the
62 # only thing that we want but there is code right now that uses ints.
63 if isinstance(value, int):
64 value = uuid.UUID(int=value)
65 elif isinstance(value, bytes):
66 value = uuid.UUID(bytes=value)
67 elif isinstance(value, str):
68 # hexstring
69 value = uuid.UUID(hex=value)
70 elif not isinstance(value, uuid.UUID):
71 raise TypeError(f"Unexpected type of a bind value: {type(value)}")
72
73 if dialect.name == "postgresql":
74 return str(value)
75 else:
76 return "%.32x" % value.int
77

◆ process_result_value()

uuid.UUID | None lsst.dax.apdb.sql.modelToSql.GUID.process_result_value ( self,
str | uuid.UUID | None value,
sqlalchemy.engine.Dialect dialect )

Definition at line 78 of file modelToSql.py.

80 ) -> uuid.UUID | None:
81 if value is None:
82 return value
83 elif isinstance(value, uuid.UUID):
84 # sqlalchemy 2 converts to UUID internally
85 return value
86 else:
87 return uuid.UUID(hex=value)
88
89

Member Data Documentation

◆ cache_ok

bool lsst.dax.apdb.sql.modelToSql.GUID.cache_ok = True
static

Definition at line 49 of file modelToSql.py.

◆ impl

lsst.dax.apdb.sql.modelToSql.GUID.impl = sqlalchemy.CHAR
static

Definition at line 47 of file modelToSql.py.


The documentation for this class was generated from the following file: