SQLAlchemy type to store standard enum.Enum value
Project description
SQLAlchemy-Enum34
This package provides a SQLAlchemy type to store values of standard enum.Enum (which became a part of standard library since Python 3.4). Its internal representation is equivalent to SQLAlchemy’s built-in sqlalchemy.types.Enum, but its Python representation is not a str but enum.Enum.
Note that this works on Python 2.6 as well as 3.4, the latest version of Python, through enum34 package.
The following example shows how enum-typed columns can be declared:
import enum from sqlalchemy import Column, Integer from sqlalchemy.ext.declarative import declarative_base from sqlalchemy_enum34 import EnumType Base = declarative_base() class Color(enum.Enum): black = 'black' white = 'white' navy = 'navy' red = 'red' class Size(enum.Enum): small = 'S' medium = 'M' large = 'L' xlarge = 'XL' class Shirt(Base): id = Column(Integer, primary_key=True) color = Column(EnumType(Color), nullable=False) size = Column(EnumType(Size, name='shirt_size'), nullable=False)
And the following REPL session shows how these columns work:
>>> shirt = session.query(Shirt).filter(Shirt.color == Color.navy).first() >>> shirt.color <Color.navy: 'navy'> >>> shirt.size <Size.large: 'large'>
Written by Hong Minhee at Spoqa, and distributed under MIT license.
Changelog
2.0.0
Released on April 14, 2021.
Update for SQLAlchemy 1.3+ and modern Python versions. [#6 by Joongi Kim]
1.0.1
Released on August 7, 2015.
Fixed that sqlalchemy_enum34.Enum didn’t allow nullability. [#1 by Andrés Moya]
1.0.0
First version. Released on July 30, 2015.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for SQLAlchemy_Enum34-2.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6937191cfcb47ecee0f4111046626f143445962a94935fe50989b6560e6bc5c3 |
|
MD5 | 77b90604d154107d78b4e9676bccd849 |
|
BLAKE2b-256 | 927b33f113ee53c91dbae47c112a00a1abc30e6f903f9c518b566d72ea3a463b |