no need to redefine PY3 - six already has it

This commit is contained in:
Stefan Wojcik 2016-12-08 12:53:01 -05:00
parent 18a91cc794
commit fa6949eca2
6 changed files with 13 additions and 17 deletions

View File

@ -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')

View File

@ -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)

View File

@ -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:

View File

@ -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:

View File

@ -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)

View File

@ -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']"