@@ -91,8 +91,6 @@ def convert_sqlalchemy_type(type, column, registry=None):
91
91
@convert_sqlalchemy_type .register (types .Text )
92
92
@convert_sqlalchemy_type .register (types .Unicode )
93
93
@convert_sqlalchemy_type .register (types .UnicodeText )
94
- @convert_sqlalchemy_type .register (types .Enum )
95
- @convert_sqlalchemy_type .register (postgresql .ENUM )
96
94
@convert_sqlalchemy_type .register (postgresql .UUID )
97
95
@convert_sqlalchemy_type .register (TSVectorType )
98
96
def convert_column_to_string (type , column , registry = None ):
@@ -111,22 +109,36 @@ def convert_column_to_datetime(type, column, registry=None):
111
109
@convert_sqlalchemy_type .register (types .Integer )
112
110
def convert_column_to_int_or_id (type , column , registry = None ):
113
111
if column .primary_key :
114
- return ID (description = get_column_doc (column ), required = not (is_column_nullable (column )))
112
+ return ID (description = get_column_doc (column ),
113
+ required = not (is_column_nullable (column )))
115
114
else :
116
115
return Int (description = get_column_doc (column ),
117
116
required = not (is_column_nullable (column )))
118
117
119
118
120
119
@convert_sqlalchemy_type .register (types .Boolean )
121
120
def convert_column_to_boolean (type , column , registry = None ):
122
- return Boolean (description = get_column_doc (column ), required = not (is_column_nullable (column )))
121
+ return Boolean (description = get_column_doc (column ),
122
+ required = not (is_column_nullable (column )))
123
123
124
124
125
125
@convert_sqlalchemy_type .register (types .Float )
126
126
@convert_sqlalchemy_type .register (types .Numeric )
127
127
@convert_sqlalchemy_type .register (types .BigInteger )
128
128
def convert_column_to_float (type , column , registry = None ):
129
- return Float (description = get_column_doc (column ), required = not (is_column_nullable (column )))
129
+ return Float (description = get_column_doc (column ),
130
+ required = not (is_column_nullable (column )))
131
+
132
+
133
+ @convert_sqlalchemy_type .register (types .Enum )
134
+ def convert_enum_to_enum (type , column , registry = None ):
135
+ try :
136
+ items = type .enum_class .__members__ .items ()
137
+ except AttributeError :
138
+ items = zip (type .enums , type .enums )
139
+ return Field (Enum (type .name , items ),
140
+ description = get_column_doc (column ),
141
+ required = not (is_column_nullable (column )))
130
142
131
143
132
144
@convert_sqlalchemy_type .register (ChoiceType )
@@ -144,16 +156,19 @@ def convert_scalar_list_to_list(type, column, registry=None):
144
156
def convert_postgres_array_to_list (_type , column , registry = None ):
145
157
graphene_type = convert_sqlalchemy_type (column .type .item_type , column )
146
158
inner_type = type (graphene_type )
147
- return List (inner_type , description = get_column_doc (column ), required = not (is_column_nullable (column )))
159
+ return List (inner_type , description = get_column_doc (column ),
160
+ required = not (is_column_nullable (column )))
148
161
149
162
150
163
@convert_sqlalchemy_type .register (postgresql .HSTORE )
151
164
@convert_sqlalchemy_type .register (postgresql .JSON )
152
165
@convert_sqlalchemy_type .register (postgresql .JSONB )
153
166
def convert_json_to_string (type , column , registry = None ):
154
- return JSONString (description = get_column_doc (column ), required = not (is_column_nullable (column )))
167
+ return JSONString (description = get_column_doc (column ),
168
+ required = not (is_column_nullable (column )))
155
169
156
170
157
171
@convert_sqlalchemy_type .register (JSONType )
158
172
def convert_json_type_to_string (type , column , registry = None ):
159
- return JSONString (description = get_column_doc (column ), required = not (is_column_nullable (column )))
173
+ return JSONString (description = get_column_doc (column ),
174
+ required = not (is_column_nullable (column )))
0 commit comments