Skip to content

Commit e5182d9

Browse files
committed
wip: Workaround for circular import
1 parent 8a22a9c commit e5182d9

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

graphene_mongo/advanced_types.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
import graphene
22

3+
from mongoengine import Document
4+
from mongoengine.fields import (
5+
IntField,
6+
StringField,
7+
)
8+
9+
from .types import MongoengineObjectType
310

411
__all__ = [
512
'PointFieldType',
@@ -11,6 +18,21 @@ def _resolve_type_coordinates(self, info):
1118
return self['coordinates']
1219

1320

21+
class FsFile(Document):
22+
23+
meta = {'collection': 'fs.files'}
24+
content_type = StringField(name='contentType')
25+
chunk_size = IntField(name='chunkSize')
26+
length = IntField()
27+
md5 = StringField()
28+
29+
30+
class FsFileType(MongoengineObjectType):
31+
32+
class Meta:
33+
model = FsFile
34+
35+
1436
class _TypeField(graphene.ObjectType):
1537

1638
type = graphene.String()

graphene_mongo/converter.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from graphene.types.json import JSONString
1818
from mongoengine.base import get_document
1919

20-
from . import advanced_types
2120
from .utils import (
2221
import_single_dispatch, get_field_description,
2322
)
@@ -74,16 +73,19 @@ def convert_dict_to_jsonstring(field, registry=None):
7473

7574
@convert_mongoengine_field.register(mongoengine.PointField)
7675
def convert_point_to_field(field, register=None):
76+
from . import advanced_types
7777
return Field(advanced_types.PointFieldType)
7878

7979

8080
@convert_mongoengine_field.register(mongoengine.PolygonField)
8181
def convert_polygon_to_field(field, register=None):
82+
from . import advanced_types
8283
return Field(advanced_types.PolygonFieldType)
8384

8485

8586
@convert_mongoengine_field.register(mongoengine.MultiPolygonField)
8687
def convert_multipolygon_to_field(field, register=None):
88+
from . import advanced_types
8789
return Field(advanced_types.MultiPolygonFieldType)
8890

8991

@@ -94,6 +96,8 @@ def convert_field_to_datetime(field, registry=None):
9496

9597
@convert_mongoengine_field.register(mongoengine.FileField)
9698
def convert_field_to_none(field, register=None):
99+
from .advanced_types import FsFileType
100+
print(FsFileType)
97101
# FIXME
98102
return None
99103

graphene_mongo/fields.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from graphene.types.structures import Structure
1212
from graphql_relay.connection.arrayconnection import connection_from_list_slice
1313

14-
from .advanced_types import PointFieldType, MultiPolygonFieldType
1514
from .converter import convert_mongoengine_field, MongoEngineConversionError
1615
from .registry import get_global_registry
1716
from .utils import get_model_reference_fields, get_node_from_global_id
@@ -64,6 +63,8 @@ def args(self, args):
6463
self._base_args = args
6564

6665
def _field_args(self, items):
66+
from .advanced_types import PointFieldType, MultiPolygonFieldType
67+
6768
def is_filterable(k):
6869
"""
6970
Args:

0 commit comments

Comments
 (0)