class DeclEnumType(SchemaType, TypeDecorator): """Declarative enumeration type.""" def __init__(self, enum: Any) -> None: self.enum = enum self.impl = Enum( *enum.values(), name="ck{0}".format(re.sub('([A-Z])', lambda m: "_" + m.group(1).lower(), enum.__name__)) ) def _set_table(self, table: Column, column: Table) -> None: self.impl._set_table(table, column) def copy(self) -> DeclEnumType: """Get enumeration type of self.""" return DeclEnumType(self.enum) def process_bind_param(self, value: EnumSymbol, dialect: SQLiteDialect_pysqlite) -> str: """Get process bind parameter.""" if value is None: return None return value.value def process_result_value(self, value: str, dialect: SQLiteDialect_pysqlite) -> EnumSymbol: """Get process result value.""" if value is None: return None return self.enum.from_string(value.strip())
class DeclEnumType(SchemaType, TypeDecorator): def __init__(self, enum): self.enum = enum self.impl = Enum( *enum.values(), name="ck%s" % re.sub( '([A-Z])', lambda m: "_" + m.group(1).lower(), enum.__name__) ) def _set_table(self, table, column): self.impl._set_table(table, column) def copy(self): return DeclEnumType(self.enum) def process_bind_param(self, value, dialect): if value is None: return None return value.value def process_result_value(self, value, dialect): if value is None: return None return self.enum.from_string(value.strip())
class DeclEnumType(SchemaType, TypeDecorator): def __init__(self, enum): self.enum = enum self.impl = Enum(*enum.values(), name="ck%s" % re.sub('([A-Z])', lambda m: "_" + m.group(1).lower(), enum.__name__)) def _set_table(self, table, column): self.impl._set_table(table, column) def copy(self): return DeclEnumType(self.enum) def process_bind_param(self, value, dialect): if value is None: return None return value.value def process_result_value(self, value, dialect): if value is None: return None return self.enum.from_string(value.strip())