Show More
@@ -166,7 +166,39 b' def _to_index(index, table=None, engine=' | |||||
166 | return ret |
|
166 | return ret | |
167 |
|
167 | |||
168 |
|
168 | |||
169 | class ColumnDelta(DictMixin, sqlalchemy.schema.SchemaItem): |
|
169 | ||
|
170 | # Python3: if we just use: | |||
|
171 | # | |||
|
172 | # class ColumnDelta(DictMixin, sqlalchemy.schema.SchemaItem): | |||
|
173 | # ... | |||
|
174 | # | |||
|
175 | # We get the following error: | |||
|
176 | # TypeError: metaclass conflict: the metaclass of a derived class must be a | |||
|
177 | # (non-strict) subclass of the metaclasses of all its bases. | |||
|
178 | # | |||
|
179 | # The complete inheritance/metaclass relationship list of ColumnDelta can be | |||
|
180 | # summarized by this following dot file: | |||
|
181 | # | |||
|
182 | # digraph test123 { | |||
|
183 | # ColumnDelta -> MutableMapping; | |||
|
184 | # MutableMapping -> Mapping; | |||
|
185 | # Mapping -> {Sized Iterable Container}; | |||
|
186 | # {Sized Iterable Container} -> ABCMeta[style=dashed]; | |||
|
187 | # | |||
|
188 | # ColumnDelta -> SchemaItem; | |||
|
189 | # SchemaItem -> {SchemaEventTarget Visitable}; | |||
|
190 | # SchemaEventTarget -> object; | |||
|
191 | # Visitable -> {VisitableType object} [style=dashed]; | |||
|
192 | # VisitableType -> type; | |||
|
193 | # } | |||
|
194 | # | |||
|
195 | # We need to use a metaclass that inherits from all the metaclasses of | |||
|
196 | # DictMixin and sqlalchemy.schema.SchemaItem. Let's call it "MyMeta". | |||
|
197 | class MyMeta(sqlalchemy.sql.visitors.VisitableType, abc.ABCMeta, object): | |||
|
198 | pass | |||
|
199 | ||||
|
200 | ||||
|
201 | class ColumnDelta(six.with_metaclass(MyMeta, DictMixin, sqlalchemy.schema.SchemaItem)): | |||
170 | """Extracts the differences between two columns/column-parameters |
|
202 | """Extracts the differences between two columns/column-parameters | |
171 |
|
203 | |||
172 | May receive parameters arranged in several different ways: |
|
204 | May receive parameters arranged in several different ways: |
General Comments 0
You need to be logged in to leave comments.
Login now