Skip to content

Commit 18a7c54

Browse files
committed
chore: move base filter creation
1 parent 1aef748 commit 18a7c54

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

graphene_sqlalchemy/registry.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import inspect
12
from collections import defaultdict
23
from typing import TYPE_CHECKING, List, Type
34

@@ -7,7 +8,7 @@
78
from sqlalchemy.types import Enum as SQLAlchemyEnumType
89

910
if TYPE_CHECKING: # pragma: no_cover
10-
from graphene_sqlalchemy.filters import (
11+
from .filters import (
1112
FieldFilter,
1213
BaseTypeFilter,
1314
RelationshipFilter, )
@@ -26,6 +27,26 @@ def __init__(self):
2627
self._registry_base_type_filters = {}
2728
self._registry_relationship_filters = {}
2829

30+
self._init_base_filters()
31+
32+
def _init_base_filters(self):
33+
import graphene_sqlalchemy.filters as gsqa_filters
34+
35+
from .filters import (FieldFilter)
36+
field_filter_classes = [
37+
filter_cls[1]
38+
for filter_cls in inspect.getmembers(gsqa_filters, inspect.isclass)
39+
if (
40+
filter_cls[1] is not FieldFilter
41+
and FieldFilter in filter_cls[1].__mro__
42+
and getattr(filter_cls[1]._meta, "graphene_type", False)
43+
)
44+
]
45+
for field_filter_class in field_filter_classes:
46+
self.register_filter_for_scalar_type(
47+
field_filter_class._meta.graphene_type, field_filter_class
48+
)
49+
2950
def register(self, obj_type):
3051
from .types import SQLAlchemyBase
3152

graphene_sqlalchemy/types.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from sqlalchemy.orm import ColumnProperty, CompositeProperty, RelationshipProperty
2121
from sqlalchemy.orm.exc import NoResultFound
2222

23-
import graphene_sqlalchemy.filters as gsa_filters
2423
from .converter import (
2524
convert_sqlalchemy_column,
2625
convert_sqlalchemy_composite,
@@ -420,21 +419,7 @@ def __init_subclass_with_meta__(
420419
)
421420

422421
if not registry:
423-
# TODO add documentation for users to register their own filters
424422
registry = get_global_registry()
425-
field_filter_classes = [
426-
filter_cls[1]
427-
for filter_cls in inspect.getmembers(gsa_filters, inspect.isclass)
428-
if (
429-
filter_cls[1] is not FieldFilter
430-
and FieldFilter in filter_cls[1].__mro__
431-
and getattr(filter_cls[1]._meta, "graphene_type", False)
432-
)
433-
]
434-
for field_filter_class in field_filter_classes:
435-
get_global_registry().register_filter_for_scalar_type(
436-
field_filter_class._meta.graphene_type, field_filter_class
437-
)
438423

439424
assert isinstance(registry, Registry), (
440425
"The attribute registry in {} needs to be an instance of "

0 commit comments

Comments
 (0)