healthier, cleaner imports

This commit is contained in:
Stefan Wojcik 2016-12-06 13:17:40 -05:00
parent db673a9033
commit 6b2cebb07b
12 changed files with 80 additions and 78 deletions

View File

@ -1,23 +1,35 @@
# Import submodules so that we can expose their __all__
import connection import connection
from connection import *
import document import document
from document import *
import errors import errors
from errors import *
import fields import fields
from fields import *
import queryset import queryset
from queryset import *
import signals import signals
# Import everything from each submodule so that it can be accessed via
# mongoengine, e.g. instead of `from mongoengine.connection import connect`,
# users can simply use `from mongoengine import connect`, or even
# `from mongoengine import *` and then `connect('testdb')`.
from connection import *
from document import *
from errors import *
from fields import *
from queryset import *
from signals import * from signals import *
__all__ = (list(document.__all__) + fields.__all__ + connection.__all__ +
list(queryset.__all__) + signals.__all__ + list(errors.__all__)) __all__ = (list(document.__all__) + list(fields.__all__) +
list(connection.__all__) + list(queryset.__all__) +
list(signals.__all__) + list(errors.__all__))
VERSION = (0, 10, 7) VERSION = (0, 10, 7)
def get_version(): def get_version():
"""Return the VERSION as a string, e.g. for VERSION == (0, 10, 7),
return '0.10.7'.
"""
if isinstance(VERSION[-1], basestring): if isinstance(VERSION[-1], basestring):
return '.'.join(map(str, VERSION[:-1])) + VERSION[-1] return '.'.join(map(str, VERSION[:-1])) + VERSION[-1]
return '.'.join(map(str, VERSION)) return '.'.join(map(str, VERSION))

View File

@ -1,8 +0,0 @@
from mongoengine.base.common import *
from mongoengine.base.datastructures import *
from mongoengine.base.document import *
from mongoengine.base.fields import *
from mongoengine.base.metaclasses import *
# Help with backwards compatibility
from mongoengine.errors import *

View File

@ -1,13 +1,14 @@
from mongoengine.errors import NotRegistered from mongoengine.errors import NotRegistered
__all__ = ('ALLOW_INHERITANCE', 'get_document', '_document_registry') __all__ = ('get_document', '_document_registry')
ALLOW_INHERITANCE = False ALLOW_INHERITANCE = False # TODO is this really necessary?
_document_registry = {} _document_registry = {}
def get_document(name): def get_document(name):
"""Get a document class by name."""
doc = _document_registry.get(name, None) doc = _document_registry.get(name, None)
if not doc: if not doc:
# Possible old style name # Possible old style name

View File

@ -11,13 +11,9 @@ import pymongo
from mongoengine import signals from mongoengine import signals
from mongoengine.base.common import ALLOW_INHERITANCE, get_document from mongoengine.base.common import ALLOW_INHERITANCE, get_document
from mongoengine.base.datastructures import ( from mongoengine.base.datastructures import (BaseDict, BaseList,
BaseDict, EmbeddedDocumentList,
BaseList, SemiStrictDict, StrictDict)
EmbeddedDocumentList,
SemiStrictDict,
StrictDict
)
from mongoengine.base.fields import ComplexBaseField from mongoengine.base.fields import ComplexBaseField
from mongoengine.common import _import_class from mongoengine.common import _import_class
from mongoengine.errors import (FieldDoesNotExist, InvalidDocumentError, from mongoengine.errors import (FieldDoesNotExist, InvalidDocumentError,

View File

@ -12,8 +12,8 @@ from mongoengine.base.datastructures import (
from mongoengine.common import _import_class from mongoengine.common import _import_class
from mongoengine.errors import ValidationError from mongoengine.errors import ValidationError
__all__ = ("BaseField", "ComplexBaseField", __all__ = ('BaseField', 'ComplexBaseField', 'ObjectIdField',
"ObjectIdField", "GeoJsonBaseField") 'GeoJsonBaseField')
UPDATE_OPERATORS = set(['set', 'unset', 'inc', 'dec', 'pop', 'push', UPDATE_OPERATORS = set(['set', 'unset', 'inc', 'dec', 'pop', 'push',

View File

@ -1,14 +1,14 @@
from bson import DBRef, SON from bson import DBRef, SON
from .base import ( from mongoengine.base.common import get_document
BaseDict, BaseList, EmbeddedDocumentList, from mongoengine.base.datastructures import (BaseDict, BaseList,
TopLevelDocumentMetaclass, get_document EmbeddedDocumentList)
) from mongoengine.base.metaclasses import TopLevelDocumentMetaclass
from .connection import get_db from mongoengine.connection import get_db
from .document import Document, EmbeddedDocument from mongoengine.document import Document, EmbeddedDocument
from .fields import DictField, ListField, MapField, ReferenceField from mongoengine.fields import DictField, ListField, MapField, ReferenceField
from .python_support import txt_type from mongoengine.python_support import txt_type
from .queryset import QuerySet from mongoengine.queryset import QuerySet
class DeReference(object): class DeReference(object):

View File

@ -6,16 +6,12 @@ import pymongo
from pymongo.read_preferences import ReadPreference from pymongo.read_preferences import ReadPreference
from mongoengine import signals from mongoengine import signals
from mongoengine.base import ( from mongoengine.base.common import ALLOW_INHERITANCE, get_document
ALLOW_INHERITANCE, from mongoengine.base.document import BaseDocument
BaseDict, from mongoengine.base.datastructures import (BaseDict, BaseList,
BaseDocument, EmbeddedDocumentList)
BaseList, from mongoengine.base.metaclasses import (DocumentMetaclass,
DocumentMetaclass, TopLevelDocumentMetaclass)
EmbeddedDocumentList,
TopLevelDocumentMetaclass,
get_document
)
from mongoengine.common import _import_class from mongoengine.common import _import_class
from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
from mongoengine.context_managers import switch_collection, switch_db from mongoengine.context_managers import switch_collection, switch_db

View File

@ -25,13 +25,16 @@ try:
except ImportError: except ImportError:
Int64 = long Int64 = long
from .base import (BaseDocument, BaseField, ComplexBaseField, GeoJsonBaseField, from mongoengine.base.common import get_document
ObjectIdField, get_document) from mongoengine.base.document import BaseDocument
from .connection import DEFAULT_CONNECTION_NAME, get_db from mongoengine.base.fields import (BaseField, ComplexBaseField,
from .document import Document, EmbeddedDocument GeoJsonBaseField, ObjectIdField)
from .errors import DoesNotExist, ValidationError from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
from .python_support import PY3, StringIO, bin_type, str_types, txt_type from mongoengine.document import Document, EmbeddedDocument
from .queryset import DO_NOTHING, QuerySet from mongoengine.errors import DoesNotExist, ValidationError
from mongoengine.python_support import (PY3, StringIO, bin_type, str_types,
txt_type)
from mongoengine.queryset import DO_NOTHING, QuerySet
try: try:
from PIL import Image, ImageOps from PIL import Image, ImageOps
@ -39,7 +42,7 @@ except ImportError:
Image = None Image = None
ImageOps = None ImageOps = None
__all__ = [ __all__ = (
'StringField', 'URLField', 'EmailField', 'IntField', 'LongField', 'StringField', 'URLField', 'EmailField', 'IntField', 'LongField',
'FloatField', 'DecimalField', 'BooleanField', 'DateTimeField', 'FloatField', 'DecimalField', 'BooleanField', 'DateTimeField',
'ComplexDateTimeField', 'EmbeddedDocumentField', 'ObjectIdField', 'ComplexDateTimeField', 'EmbeddedDocumentField', 'ObjectIdField',
@ -50,7 +53,8 @@ __all__ = [
'FileField', 'ImageGridFsProxy', 'ImproperlyConfigured', 'ImageField', 'FileField', 'ImageGridFsProxy', 'ImproperlyConfigured', 'ImageField',
'GeoPointField', 'PointField', 'LineStringField', 'PolygonField', 'GeoPointField', 'PointField', 'LineStringField', 'PolygonField',
'SequenceField', 'UUIDField', 'MultiPointField', 'MultiLineStringField', 'SequenceField', 'UUIDField', 'MultiPointField', 'MultiLineStringField',
'MultiPolygonField', 'GeoJsonBaseField'] 'MultiPolygonField', 'GeoJsonBaseField'
)
RECURSIVE_REFERENCE_CONSTANT = 'self' RECURSIVE_REFERENCE_CONSTANT = 'self'

View File

@ -1,11 +1,22 @@
from mongoengine.errors import (DoesNotExist, InvalidQueryError, from mongoengine.errors import (DoesNotExist, InvalidQueryError,
MultipleObjectsReturned, NotUniqueError, MultipleObjectsReturned, NotUniqueError,
OperationError) OperationError)
from mongoengine.queryset.field_list import * from mongoengine.queryset.field_list import QueryFieldList
from mongoengine.queryset.manager import * from mongoengine.queryset.manager import queryset_manager, QuerySetManager
from mongoengine.queryset.queryset import * from mongoengine.queryset.queryset import (QuerySet, QuerySetNoCache,
from mongoengine.queryset.transform import * DO_NOTHING, NULLIFY, CASCADE,
from mongoengine.queryset.visitor import * DENY, PULL)
#from mongoengine.queryset.transform import query, update
from mongoengine.queryset.visitor import Q
__all__ = (
'QuerySet', 'QuerySetNoCache', 'Q', 'queryset_manager', 'QuerySetManager',
'QueryFieldList', 'DO_NOTHING', 'NULLIFY', 'CASCADE', 'DENY', 'PULL',
# Errors that might be related to a queryset, mostly here for backward
# compatibility
'DoesNotExist', 'InvalidQueryError', 'MultipleObjectsReturned',
'NotUniqueError', 'OperationError',
)
__all__ = (field_list.__all__ + manager.__all__ + queryset.__all__ +
transform.__all__ + visitor.__all__)

View File

@ -1,7 +1,5 @@
# -*- coding: utf-8 -*- __all__ = ('pre_init', 'post_init', 'pre_save', 'pre_save_post_validation',
'post_save', 'pre_delete', 'post_delete')
__all__ = ['pre_init', 'post_init', 'pre_save', 'pre_save_post_validation',
'post_save', 'pre_delete', 'post_delete']
signals_available = False signals_available = False
try: try:
@ -34,6 +32,7 @@ except ImportError:
temporarily_connected_to = _fail temporarily_connected_to = _fail
del _fail del _fail
# the namespace for code signals. If you are not mongoengine code, do # the namespace for code signals. If you are not mongoengine code, do
# not put signals in here. Create your own namespace instead. # not put signals in here. Create your own namespace instead.
_signals = Namespace() _signals = Namespace()

View File

@ -1,7 +1,4 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys
sys.path[0:0] = [""]
import bson import bson
import os import os
import pickle import pickle
@ -16,12 +13,12 @@ from tests.fixtures import (PickleEmbedded, PickleTest, PickleSignalsTest,
PickleDynamicEmbedded, PickleDynamicTest) PickleDynamicEmbedded, PickleDynamicTest)
from mongoengine import * from mongoengine import *
from mongoengine.base.common import get_document, _document_registry
from mongoengine.connection import get_db
from mongoengine.errors import (NotRegistered, InvalidDocumentError, from mongoengine.errors import (NotRegistered, InvalidDocumentError,
InvalidQueryError, NotUniqueError, InvalidQueryError, NotUniqueError,
FieldDoesNotExist, SaveConditionError) FieldDoesNotExist, SaveConditionError)
from mongoengine.queryset import NULLIFY, Q from mongoengine.queryset import NULLIFY, Q
from mongoengine.connection import get_db
from mongoengine.base import get_document
from mongoengine.context_managers import switch_db, query_counter from mongoengine.context_managers import switch_db, query_counter
from mongoengine import signals from mongoengine import signals
@ -411,7 +408,6 @@ class InstanceTest(unittest.TestCase):
# Mimic Place and NicePlace definitions being in a different file # Mimic Place and NicePlace definitions being in a different file
# and the NicePlace model not being imported in at query time. # and the NicePlace model not being imported in at query time.
from mongoengine.base import _document_registry
del(_document_registry['Place.NicePlace']) del(_document_registry['Place.NicePlace'])
def query_without_importing_nice_place(): def query_without_importing_nice_place():

View File

@ -1,11 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys
import six import six
from nose.plugins.skip import SkipTest from nose.plugins.skip import SkipTest
sys.path[0:0] = [""]
import datetime import datetime
import unittest import unittest
import uuid import uuid
@ -29,8 +25,9 @@ except ImportError:
from mongoengine import * from mongoengine import *
from mongoengine.connection import get_db from mongoengine.connection import get_db
from mongoengine.base import _document_registry from mongoengine.base.common import _document_registry
from mongoengine.base.datastructures import BaseDict, EmbeddedDocumentList from mongoengine.base.datastructures import BaseDict, EmbeddedDocumentList
from mongoengine.base.fields import BaseField
from mongoengine.errors import NotRegistered, DoesNotExist from mongoengine.errors import NotRegistered, DoesNotExist
from mongoengine.python_support import PY3, b, bin_type from mongoengine.python_support import PY3, b, bin_type
@ -3555,8 +3552,6 @@ class FieldTest(unittest.TestCase):
Ensure that tuples remain tuples when they are Ensure that tuples remain tuples when they are
inside a ComplexBaseField inside a ComplexBaseField
""" """
from mongoengine.base import BaseField
class EnumField(BaseField): class EnumField(BaseField):
def __init__(self, **kwargs): def __init__(self, **kwargs):