improve 2-3 codebase compatibility

This commit is contained in:
Bastien Gérard
2018-09-09 15:50:48 +02:00
parent d17cac8210
commit 4314fa883f
17 changed files with 73 additions and 68 deletions

View File

@@ -24,6 +24,7 @@ try:
except ImportError:
Int64 = long
from mongoengine.base import (BaseDocument, BaseField, ComplexBaseField,
GeoJsonBaseField, LazyReference, ObjectIdField,
get_document)
@@ -41,6 +42,12 @@ except ImportError:
Image = None
ImageOps = None
if six.PY3:
# Useless as long as 2to3 gets executed
# as it turns `long` into `int` blindly
long = int
__all__ = (
'StringField', 'URLField', 'EmailField', 'IntField', 'LongField',
'FloatField', 'DecimalField', 'BooleanField', 'DateTimeField', 'DateField',
@@ -597,7 +604,7 @@ class ComplexDateTimeField(StringField):
>>> ComplexDateTimeField()._convert_from_string(a)
datetime.datetime(2011, 6, 8, 20, 26, 24, 92284)
"""
values = map(int, data.split(self.separator))
values = [int(d) for d in data.split(self.separator)]
return datetime.datetime(*values)
def __get__(self, instance, owner):
@@ -1525,9 +1532,11 @@ class GridFSProxy(object):
def __get__(self, instance, value):
return self
def __nonzero__(self):
def __bool__(self):
return bool(self.grid_id)
__nonzero__ = __bool__ # For Py2 support
def __getstate__(self):
self_dict = self.__dict__
self_dict['_fs'] = None