Skip to content

Commit 3ade1e6

Browse files
committed
Type checks, messages and docstrings
- change instances of SQLAlchemyObjectType to SQLAlchemyBase as appropriate - update tests
1 parent f5e6d32 commit 3ade1e6

File tree

7 files changed

+27
-27
lines changed

7 files changed

+27
-27
lines changed

graphene_sqlalchemy/converter.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
from sqlalchemy import types as sqa_types
99
from sqlalchemy.dialects import postgresql
10+
from sqlalchemy.ext.hybrid import hybrid_property
1011
from sqlalchemy.orm import (
1112
ColumnProperty,
1213
RelationshipProperty,
1314
class_mapper,
1415
interfaces,
1516
strategies,
1617
)
17-
from sqlalchemy.ext.hybrid import hybrid_property
1818

1919
import graphene
2020
from graphene.types.json import JSONString
@@ -159,7 +159,7 @@ def convert_sqlalchemy_relationship(
159159
):
160160
"""
161161
:param sqlalchemy.RelationshipProperty relationship_prop:
162-
:param SQLAlchemyObjectType obj_type:
162+
:param SQLAlchemyBase obj_type:
163163
:param function|None connection_field_factory:
164164
:param bool batching:
165165
:param str orm_field_name:
@@ -202,7 +202,7 @@ def _convert_o2o_or_m2o_relationship(
202202
Convert one-to-one or many-to-one relationshsip. Return an object field.
203203
204204
:param sqlalchemy.RelationshipProperty relationship_prop:
205-
:param SQLAlchemyObjectType obj_type:
205+
:param SQLAlchemyBase obj_type:
206206
:param bool batching:
207207
:param str orm_field_name:
208208
:param dict field_kwargs:
@@ -230,7 +230,7 @@ def _convert_o2m_or_m2m_relationship(
230230
Convert one-to-many or many-to-many relationshsip. Return a list field or a connection field.
231231
232232
:param sqlalchemy.RelationshipProperty relationship_prop:
233-
:param SQLAlchemyObjectType obj_type:
233+
:param SQLAlchemyBase obj_type:
234234
:param bool batching:
235235
:param function|None connection_field_factory:
236236
:param dict field_kwargs:
@@ -362,7 +362,7 @@ def get_type_from_registry():
362362
raise TypeError(
363363
"No model found in Registry for type %s. "
364364
"Only references to SQLAlchemy Models mapped to "
365-
"SQLAlchemyObjectTypes are allowed." % type_arg
365+
"SQLAlchemyBase types are allowed." % type_arg
366366
)
367367

368368
return get_type_from_registry()
@@ -680,7 +680,7 @@ def forward_reference_solver():
680680
raise TypeError(
681681
"No model found in Registry for forward reference for type %s. "
682682
"Only forward references to other SQLAlchemy Models mapped to "
683-
"SQLAlchemyObjectTypes are allowed." % type_arg
683+
"SQLAlchemyBase types are allowed." % type_arg
684684
)
685685
# Always fall back to string if no ForwardRef type found.
686686
return get_global_registry().get_type_for_model(model)

graphene_sqlalchemy/enums.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ def enum_for_sa_enum(sa_enum, registry):
5353

5454
def enum_for_field(obj_type, field_name):
5555
"""Return the Graphene Enum type for the specified Graphene field."""
56-
from .types import SQLAlchemyObjectType
56+
from .types import SQLAlchemyBase
5757

58-
if not isinstance(obj_type, type) or not issubclass(obj_type, SQLAlchemyObjectType):
59-
raise TypeError("Expected SQLAlchemyObjectType, but got: {!r}".format(obj_type))
58+
if not isinstance(obj_type, type) or not issubclass(obj_type, SQLAlchemyBase):
59+
raise TypeError("Expected SQLAlchemyBase, but got: {!r}".format(obj_type))
6060
if not field_name or not isinstance(field_name, str):
6161
raise TypeError("Expected a field name, but got: {!r}".format(field_name))
6262
registry = obj_type._meta.registry
@@ -88,10 +88,10 @@ def _default_sort_enum_symbol_name(column_name, sort_asc=True):
8888
def sort_enum_for_object_type(
8989
obj_type, name=None, only_fields=None, only_indexed=None, get_symbol_name=None
9090
):
91-
"""Return Graphene Enum for sorting the given SQLAlchemyObjectType.
91+
"""Return Graphene Enum for sorting the given SQLAlchemyBase.
9292
9393
Parameters
94-
- obj_type : SQLAlchemyObjectType
94+
- obj_type : SQLAlchemyBase
9595
The object type for which the sort Enum shall be generated.
9696
- name : str, optional, default None
9797
Name to use for the sort Enum.
@@ -160,10 +160,10 @@ def sort_argument_for_object_type(
160160
get_symbol_name=None,
161161
has_default=True,
162162
):
163-
""" "Returns Graphene Argument for sorting the given SQLAlchemyObjectType.
163+
""" "Returns Graphene Argument for sorting the given SQLAlchemyBase.
164164
165165
Parameters
166-
- obj_type : SQLAlchemyObjectType
166+
- obj_type : SQLAlchemyBase
167167
The object type for which the sort Argument shall be generated.
168168
- enum_name : str, optional, default None
169169
Name to use for the sort Enum.

graphene_sqlalchemy/fields.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ def type(self):
3939
nullable_type.__name__
4040
)
4141
assert type_ == nullable_type, (
42-
"Passing a SQLAlchemyObjectType instance is deprecated. "
43-
"Pass the connection type instead accessible via SQLAlchemyObjectType.connection"
42+
"Passing a SQLAlchemyBase instance is deprecated. "
43+
"Pass the connection type instead accessible via SQLAlchemyBase.connection"
4444
)
4545
return nullable_type.connection
4646

@@ -266,7 +266,7 @@ def default_connection_field_factory(relationship, registry, **field_kwargs):
266266
def createConnectionField(type_, **field_kwargs):
267267
warnings.warn(
268268
"createConnectionField is deprecated and will be removed in the next "
269-
"major version. Use SQLAlchemyObjectType.Meta.connection_field_factory instead.",
269+
"major version. Use SQLAlchemyBase.Meta.connection_field_factory instead.",
270270
DeprecationWarning,
271271
)
272272
return __connectionFactory(type_, **field_kwargs)
@@ -275,7 +275,7 @@ def createConnectionField(type_, **field_kwargs):
275275
def registerConnectionFieldFactory(factoryMethod):
276276
warnings.warn(
277277
"registerConnectionFieldFactory is deprecated and will be removed in the next "
278-
"major version. Use SQLAlchemyObjectType.Meta.connection_field_factory instead.",
278+
"major version. Use SQLAlchemyBase.Meta.connection_field_factory instead.",
279279
DeprecationWarning,
280280
)
281281
global __connectionFactory
@@ -285,7 +285,7 @@ def registerConnectionFieldFactory(factoryMethod):
285285
def unregisterConnectionFieldFactory():
286286
warnings.warn(
287287
"registerConnectionFieldFactory is deprecated and will be removed in the next "
288-
"major version. Use SQLAlchemyObjectType.Meta.connection_field_factory instead.",
288+
"major version. Use SQLAlchemyBase.Meta.connection_field_factory instead.",
289289
DeprecationWarning,
290290
)
291291
global __connectionFactory

graphene_sqlalchemy/resolvers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def get_attr_resolver(obj_type, model_attr):
1919
In order to support field renaming via `ORMField.model_attr`,
2020
we need to define resolver functions for each field.
2121
22-
:param SQLAlchemyObjectType obj_type:
22+
:param SQLAlchemyBase obj_type:
2323
:param str model_attr: the name of the SQLAlchemy attribute
2424
:rtype: Callable
2525
"""

graphene_sqlalchemy/tests/test_converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def hybrid_prop(self) -> "MyTypeNotInRegistry":
130130
with pytest.raises(
131131
TypeError,
132132
match=r"(.*)Only forward references to other SQLAlchemy Models mapped to "
133-
"SQLAlchemyObjectTypes are allowed.(.*)",
133+
"SQLAlchemyBase types are allowed.(.*)",
134134
):
135135
get_hybrid_property_type(hybrid_prop).type
136136

graphene_sqlalchemy/tests/test_enums.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,6 @@ class Meta:
119119
with pytest.raises(TypeError, match=re_err):
120120
PetType.enum_for_field(None)
121121

122-
re_err = "Expected SQLAlchemyObjectType, but got: None"
122+
re_err = "Expected SQLAlchemyBase, but got: None"
123123
with pytest.raises(TypeError, match=re_err):
124124
enum_for_field(None, "other_kind")

graphene_sqlalchemy/types.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ def __init__(
6767
**field_kwargs,
6868
):
6969
"""
70-
Use this to override fields automatically generated by SQLAlchemyObjectType.
71-
Unless specified, options will default to SQLAlchemyObjectType usual behavior
70+
Use this to override fields automatically generated by SQLAlchemyBase.
71+
Unless specified, options will default to SQLAlchemyBase usual behavior
7272
for the given SQLAlchemy model property.
7373
7474
Usage:
@@ -159,8 +159,8 @@ def filter_field_from_field(
159159
model_attr: Any,
160160
model_attr_name: str,
161161
) -> Optional[graphene.InputField]:
162-
# Field might be a SQLAlchemyObjectType, due to hybrid properties
163-
if issubclass(type_, SQLAlchemyObjectType):
162+
# Field might be a SQLAlchemyBase, due to hybrid properties
163+
if issubclass(type_, SQLAlchemyBase):
164164
filter_class = registry.get_filter_for_base_type(type_)
165165
# Enum Special Case
166166
elif issubclass(type_, graphene.Enum) and isinstance(model_attr, ColumnProperty):
@@ -285,13 +285,13 @@ def construct_fields_and_filters(
285285
connection_field_factory,
286286
):
287287
"""
288-
Construct all the fields for a SQLAlchemyObjectType.
288+
Construct all the fields for a SQLAlchemyBase.
289289
The main steps are:
290290
- Gather all the relevant attributes from the SQLAlchemy model
291291
- Gather all the ORM fields defined on the type
292292
- Merge in overrides and build up all the fields
293293
294-
:param SQLAlchemyObjectType obj_type:
294+
:param SQLAlchemyBase obj_type:
295295
:param model: the SQLAlchemy model
296296
:param Registry registry:
297297
:param tuple[string] only_fields:

0 commit comments

Comments
 (0)