Skip to content

Commit 9a05834

Browse files
committed
scope down
1 parent 8f95696 commit 9a05834

File tree

1 file changed

+7
-30
lines changed

1 file changed

+7
-30
lines changed

graphene_sqlalchemy/converter.py

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from singledispatch import singledispatch
44
from sqlalchemy import inspect, types
55
from sqlalchemy.dialects import postgresql
6-
from sqlalchemy.ext.associationproxy import AssociationProxy
76
from sqlalchemy.ext.hybrid import hybrid_property
87
from sqlalchemy.orm import (ColumnProperty, CompositeProperty,
98
interfaces, RelationshipProperty,
@@ -46,34 +45,18 @@ def convert_sqlalchemy_association_proxy(association_prop, obj_type, registry, c
4645
attr = inspect(attr).property
4746

4847
def dynamic_type():
49-
if isinstance(attr, AssociationProxy):
50-
return convert_sqlalchemy_association_proxy(
48+
if isinstance(attr, ColumnProperty):
49+
field = convert_sqlalchemy_column(
5150
attr,
52-
obj_type,
5351
registry,
54-
connection_field_factory,
55-
batching,
5652
resolver,
5753
**field_kwargs
5854
)
59-
elif isinstance(attr, ColumnProperty):
60-
# similar to convert_sqlalchemy_column, but supports lists
61-
column = attr.columns[0]
62-
type_ = field_kwargs.pop('type', convert_sqlalchemy_type(getattr(column, "type", None), column, registry))
63-
field_kwargs.setdefault('required', not is_column_nullable(column))
64-
field_kwargs.setdefault('description', get_column_doc(column))
65-
66-
return Field(
67-
type_ if association_prop.scalar else List(type_),
68-
resolver=resolver,
69-
**field_kwargs
70-
)
71-
elif isinstance(attr, CompositeProperty):
72-
return convert_sqlalchemy_composite(
73-
attr,
74-
registry,
75-
resolver
76-
)
55+
if not association_prop.scalar:
56+
# repackage as List
57+
field.__dict__['_type'] = List(field.type)
58+
59+
return field
7760
elif isinstance(attr, RelationshipProperty):
7861
batching_ = field_kwargs.pop('batching', batching)
7962
return convert_sqlalchemy_relationship(
@@ -85,12 +68,6 @@ def dynamic_type():
8568
**field_kwargs
8669
# resolve Dynamic type
8770
).get_type()
88-
elif isinstance(attr, hybrid_property):
89-
return convert_sqlalchemy_hybrid_method(
90-
attr,
91-
resolver,
92-
**field_kwargs
93-
)
9471

9572
raise NotImplementedError(attr)
9673

0 commit comments

Comments
 (0)