1
1
from collections import OrderedDict
2
+
2
3
import six
3
4
from sqlalchemy .inspection import inspect as sqlalchemyinspect
4
5
from sqlalchemy .orm .exc import NoResultFound
5
6
6
- from graphene import ObjectType , Field
7
+ from graphene import Field , ObjectType
7
8
from graphene .relay import is_node
9
+ from graphene .types .objecttype import ObjectTypeMeta
10
+ from graphene .types .options import Options
11
+ from graphene .types .utils import merge , yank_fields_from_attrs
12
+ from graphene .utils .is_base_type import is_base_type
13
+
8
14
from .converter import (convert_sqlalchemy_column ,
9
15
convert_sqlalchemy_composite ,
10
16
convert_sqlalchemy_relationship )
11
- from .utils import is_mapped
12
-
13
- from graphene .types .objecttype import ObjectTypeMeta
14
- from graphene .types .options import Options
15
17
from .registry import Registry , get_global_registry
16
- from graphene .utils .is_base_type import is_base_type
17
- from graphene .types .utils import yank_fields_from_attrs , merge
18
- from .utils import get_query
18
+ from .utils import get_query , is_mapped
19
19
20
20
21
21
def construct_fields (options ):
@@ -96,7 +96,6 @@ def __new__(cls, name, bases, attrs):
96
96
'{}.Meta, received "{}".'
97
97
).format (name , options .model )
98
98
99
-
100
99
cls = ObjectTypeMeta .__new__ (cls , name , bases , dict (attrs , _meta = options ))
101
100
102
101
options .registry .register (cls )
@@ -116,6 +115,7 @@ def __new__(cls, name, bases, attrs):
116
115
117
116
118
117
class SQLAlchemyObjectType (six .with_metaclass (SQLAlchemyObjectTypeMeta , ObjectType )):
118
+
119
119
@classmethod
120
120
def is_type_of (cls , root , context , info ):
121
121
if isinstance (root , cls ):
@@ -124,7 +124,7 @@ def is_type_of(cls, root, context, info):
124
124
raise Exception ((
125
125
'Received incompatible instance "{}".'
126
126
).format (root ))
127
- return type (root ) == cls ._meta .model
127
+ return isinstance (root , cls ._meta .model )
128
128
129
129
@classmethod
130
130
def get_query (cls , context ):
@@ -138,8 +138,8 @@ def get_node(cls, id, context, info):
138
138
except NoResultFound :
139
139
return None
140
140
141
- def resolve_id (root , args , context , info ):
141
+ def resolve_id (self , args , context , info ):
142
142
graphene_type = info .parent_type .graphene_type
143
143
if is_node (graphene_type ):
144
- return root .__mapper__ .primary_key_from_instance (root )[0 ]
145
- return getattr (root , graphene_type ._meta .id , None )
144
+ return self .__mapper__ .primary_key_from_instance (self )[0 ]
145
+ return getattr (self , graphene_type ._meta .id , None )
0 commit comments