no need to redefine PY3 - six already has it
This commit is contained in:
parent
18a91cc794
commit
fa6949eca2
@ -19,7 +19,6 @@ 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,
|
||||||
LookUpError, OperationError, ValidationError)
|
LookUpError, OperationError, ValidationError)
|
||||||
from mongoengine.python_support import PY3
|
|
||||||
|
|
||||||
__all__ = ('BaseDocument',)
|
__all__ = ('BaseDocument',)
|
||||||
|
|
||||||
@ -256,7 +255,7 @@ class BaseDocument(object):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
# TODO this could be simpler?
|
# TODO this could be simpler?
|
||||||
if hasattr(self, '__unicode__'):
|
if hasattr(self, '__unicode__'):
|
||||||
if PY3:
|
if six.PY3:
|
||||||
return self.__unicode__()
|
return self.__unicode__()
|
||||||
else:
|
else:
|
||||||
return six.text_type(self).encode('utf-8')
|
return six.text_type(self).encode('utf-8')
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
from mongoengine.base.common import _document_registry
|
from mongoengine.base.common import _document_registry
|
||||||
from mongoengine.base.fields import BaseField, ComplexBaseField, ObjectIdField
|
from mongoengine.base.fields import BaseField, ComplexBaseField, ObjectIdField
|
||||||
from mongoengine.common import _import_class
|
from mongoengine.common import _import_class
|
||||||
from mongoengine.errors import InvalidDocumentError
|
from mongoengine.errors import InvalidDocumentError
|
||||||
from mongoengine.python_support import PY3
|
|
||||||
from mongoengine.queryset import (DO_NOTHING, DoesNotExist,
|
from mongoengine.queryset import (DO_NOTHING, DoesNotExist,
|
||||||
MultipleObjectsReturned,
|
MultipleObjectsReturned,
|
||||||
QuerySetManager)
|
QuerySetManager)
|
||||||
@ -159,7 +160,7 @@ class DocumentMetaclass(type):
|
|||||||
# module continues to use im_func and im_self, so the code below
|
# module continues to use im_func and im_self, so the code below
|
||||||
# copies __func__ into im_func and __self__ into im_self for
|
# copies __func__ into im_func and __self__ into im_self for
|
||||||
# classmethod objects in Document derived classes.
|
# classmethod objects in Document derived classes.
|
||||||
if PY3:
|
if six.PY3:
|
||||||
for val in new_class.__dict__.values():
|
for val in new_class.__dict__.values():
|
||||||
if isinstance(val, classmethod):
|
if isinstance(val, classmethod):
|
||||||
f = val.__get__(new_class)
|
f = val.__get__(new_class)
|
||||||
|
@ -30,7 +30,7 @@ from mongoengine.base import (BaseDocument, BaseField, ComplexBaseField,
|
|||||||
from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
|
from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
|
||||||
from mongoengine.document import Document, EmbeddedDocument
|
from mongoengine.document import Document, EmbeddedDocument
|
||||||
from mongoengine.errors import DoesNotExist, ValidationError
|
from mongoengine.errors import DoesNotExist, ValidationError
|
||||||
from mongoengine.python_support import PY3, StringIO
|
from mongoengine.python_support import StringIO
|
||||||
from mongoengine.queryset import DO_NOTHING, QuerySet
|
from mongoengine.queryset import DO_NOTHING, QuerySet
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -1307,7 +1307,7 @@ class BinaryField(BaseField):
|
|||||||
|
|
||||||
def __set__(self, instance, value):
|
def __set__(self, instance, value):
|
||||||
"""Handle bytearrays in python 3.1"""
|
"""Handle bytearrays in python 3.1"""
|
||||||
if PY3 and isinstance(value, bytearray):
|
if six.PY3 and isinstance(value, bytearray):
|
||||||
value = six.binary_type(value)
|
value = six.binary_type(value)
|
||||||
return super(BinaryField, self).__set__(instance, value)
|
return super(BinaryField, self).__set__(instance, value)
|
||||||
|
|
||||||
@ -1722,7 +1722,7 @@ class ImageField(FileField):
|
|||||||
for att_name, att in extra_args.items():
|
for att_name, att in extra_args.items():
|
||||||
value = None
|
value = None
|
||||||
if isinstance(att, (tuple, list)):
|
if isinstance(att, (tuple, list)):
|
||||||
if PY3:
|
if six.PY3:
|
||||||
value = dict(itertools.zip_longest(params_size, att,
|
value = dict(itertools.zip_longest(params_size, att,
|
||||||
fillvalue=None))
|
fillvalue=None))
|
||||||
else:
|
else:
|
||||||
|
@ -13,14 +13,11 @@ else:
|
|||||||
IS_PYMONGO_3 = True
|
IS_PYMONGO_3 = True
|
||||||
|
|
||||||
|
|
||||||
PY3 = sys.version_info[0] == 3
|
|
||||||
|
|
||||||
|
|
||||||
# six.BytesIO resolves to StringIO.StringIO in Py2 and io.BytesIO in Py3.
|
# six.BytesIO resolves to StringIO.StringIO in Py2 and io.BytesIO in Py3.
|
||||||
StringIO = six.BytesIO
|
StringIO = six.BytesIO
|
||||||
|
|
||||||
# Additionally for Py2, try to use the faster cStringIO, if available
|
# Additionally for Py2, try to use the faster cStringIO, if available
|
||||||
if not PY3:
|
if not six.PY3:
|
||||||
try:
|
try:
|
||||||
import cStringIO
|
import cStringIO
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -28,7 +28,6 @@ from mongoengine.connection import get_db
|
|||||||
from mongoengine.base import (BaseDict, BaseField, EmbeddedDocumentList,
|
from mongoengine.base import (BaseDict, BaseField, EmbeddedDocumentList,
|
||||||
_document_registry)
|
_document_registry)
|
||||||
from mongoengine.errors import NotRegistered, DoesNotExist
|
from mongoengine.errors import NotRegistered, DoesNotExist
|
||||||
from mongoengine.python_support import PY3
|
|
||||||
|
|
||||||
__all__ = ("FieldTest", "EmbeddedDocumentListFieldTestCase")
|
__all__ = ("FieldTest", "EmbeddedDocumentListFieldTestCase")
|
||||||
|
|
||||||
@ -653,7 +652,7 @@ class FieldTest(unittest.TestCase):
|
|||||||
self.assertNotEqual(log.date, d1)
|
self.assertNotEqual(log.date, d1)
|
||||||
self.assertEqual(log.date, d2)
|
self.assertEqual(log.date, d2)
|
||||||
|
|
||||||
if not PY3:
|
if not six.PY3:
|
||||||
# Pre UTC dates microseconds below 1000 are dropped
|
# Pre UTC dates microseconds below 1000 are dropped
|
||||||
# This does not seem to be true in PY3
|
# This does not seem to be true in PY3
|
||||||
d1 = datetime.datetime(1969, 12, 31, 23, 59, 59, 999)
|
d1 = datetime.datetime(1969, 12, 31, 23, 59, 59, 999)
|
||||||
|
@ -9,13 +9,13 @@ from nose.plugins.skip import SkipTest
|
|||||||
import pymongo
|
import pymongo
|
||||||
from pymongo.errors import ConfigurationError
|
from pymongo.errors import ConfigurationError
|
||||||
from pymongo.read_preferences import ReadPreference
|
from pymongo.read_preferences import ReadPreference
|
||||||
|
import six
|
||||||
|
|
||||||
from mongoengine import *
|
from mongoengine import *
|
||||||
from mongoengine.connection import get_connection, get_db
|
from mongoengine.connection import get_connection, get_db
|
||||||
from mongoengine.context_managers import query_counter, switch_db
|
from mongoengine.context_managers import query_counter, switch_db
|
||||||
from mongoengine.errors import InvalidQueryError
|
from mongoengine.errors import InvalidQueryError
|
||||||
from mongoengine.python_support import IS_PYMONGO_3, PY3
|
from mongoengine.python_support import IS_PYMONGO_3
|
||||||
from mongoengine.queryset import (DoesNotExist, MultipleObjectsReturned,
|
from mongoengine.queryset import (DoesNotExist, MultipleObjectsReturned,
|
||||||
QuerySet, QuerySetManager, queryset_manager)
|
QuerySet, QuerySetManager, queryset_manager)
|
||||||
|
|
||||||
@ -4089,7 +4089,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
"A0", "%s" % self.Person.objects.order_by('name').scalar('name').first())
|
"A0", "%s" % self.Person.objects.order_by('name').scalar('name').first())
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"A0", "%s" % self.Person.objects.scalar('name').order_by('name')[0])
|
"A0", "%s" % self.Person.objects.scalar('name').order_by('name')[0])
|
||||||
if PY3:
|
if six.PY3:
|
||||||
self.assertEqual("['A1', 'A2']", "%s" % self.Person.objects.order_by(
|
self.assertEqual("['A1', 'A2']", "%s" % self.Person.objects.order_by(
|
||||||
'age').scalar('name')[1:3])
|
'age').scalar('name')[1:3])
|
||||||
self.assertEqual("['A51', 'A52']", "%s" % self.Person.objects.order_by(
|
self.assertEqual("['A51', 'A52']", "%s" % self.Person.objects.order_by(
|
||||||
@ -4107,7 +4107,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
pks = self.Person.objects.order_by('age').scalar('pk')[1:3]
|
pks = self.Person.objects.order_by('age').scalar('pk')[1:3]
|
||||||
names = self.Person.objects.scalar('name').in_bulk(list(pks)).values()
|
names = self.Person.objects.scalar('name').in_bulk(list(pks)).values()
|
||||||
if PY3:
|
if six.PY3:
|
||||||
expected = "['A1', 'A2']"
|
expected = "['A1', 'A2']"
|
||||||
else:
|
else:
|
||||||
expected = "[u'A1', u'A2']"
|
expected = "[u'A1', u'A2']"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user