minor improvement in code

This commit is contained in:
Bastien Gerard 2020-12-08 22:41:27 +01:00
parent 9ffe0bcdee
commit a4fff15491
3 changed files with 11 additions and 19 deletions

View File

@ -1,5 +1,4 @@
import operator import operator
import warnings
import weakref import weakref
from bson import DBRef, ObjectId, SON from bson import DBRef, ObjectId, SON
@ -20,7 +19,7 @@ class BaseField:
.. versionchanged:: 0.5 - added verbose and help text .. versionchanged:: 0.5 - added verbose and help text
""" """
name = None name = None # set in TopLevelDocumentMetaclass
_geo_index = False _geo_index = False
_auto_gen = False # Call `generate` to generate a value _auto_gen = False # Call `generate` to generate a value
_auto_dereference = True _auto_dereference = True
@ -269,7 +268,9 @@ class ComplexBaseField(BaseField):
.. versionadded:: 0.5 .. versionadded:: 0.5
""" """
field = None def __init__(self, field=None, **kwargs):
self.field = field
super().__init__(**kwargs)
def __get__(self, instance, owner): def __get__(self, instance, owner):
"""Descriptor to automatically dereference references.""" """Descriptor to automatically dereference references."""

View File

@ -1,5 +1,4 @@
import re import re
import warnings
from bson.dbref import DBRef from bson.dbref import DBRef
import pymongo import pymongo

View File

@ -36,7 +36,6 @@ 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.document import Document, EmbeddedDocument from mongoengine.document import Document, EmbeddedDocument
from mongoengine.errors import DoesNotExist, InvalidQueryError, ValidationError from mongoengine.errors import DoesNotExist, InvalidQueryError, ValidationError
from mongoengine.mongodb_support import MONGODB_36, get_mongodb_version
from mongoengine.queryset import DO_NOTHING from mongoengine.queryset import DO_NOTHING
from mongoengine.queryset.base import BaseQuerySet from mongoengine.queryset.base import BaseQuerySet
from mongoengine.queryset.transform import STRING_OPERATORS from mongoengine.queryset.transform import STRING_OPERATORS
@ -546,10 +545,10 @@ class DateTimeField(BaseField):
if callable(value): if callable(value):
return value() return value()
if not isinstance(value, str): if isinstance(value, str):
return None
return self._parse_datetime(value) return self._parse_datetime(value)
else:
return None
def _parse_datetime(self, value): def _parse_datetime(self, value):
# Attempt to parse a datetime from a string # Attempt to parse a datetime from a string
@ -913,10 +912,9 @@ class ListField(ComplexBaseField):
""" """
def __init__(self, field=None, max_length=None, **kwargs): def __init__(self, field=None, max_length=None, **kwargs):
self.field = field
self.max_length = max_length self.max_length = max_length
kwargs.setdefault("default", lambda: []) kwargs.setdefault("default", lambda: [])
super().__init__(**kwargs) super().__init__(field=field, **kwargs)
def __get__(self, instance, owner): def __get__(self, instance, owner):
if instance is None: if instance is None:
@ -1004,14 +1002,9 @@ class SortedListField(ListField):
.. versionchanged:: 0.6 - added reverse keyword .. versionchanged:: 0.6 - added reverse keyword
""" """
_ordering = None
_order_reverse = False
def __init__(self, field, **kwargs): def __init__(self, field, **kwargs):
if "ordering" in kwargs.keys(): self._ordering = kwargs.pop("ordering", None)
self._ordering = kwargs.pop("ordering") self._order_reverse = kwargs.pop("reverse", False)
if "reverse" in kwargs.keys():
self._order_reverse = kwargs.pop("reverse")
super().__init__(field, **kwargs) super().__init__(field, **kwargs)
def to_mongo(self, value, use_db_field=True, fields=None): def to_mongo(self, value, use_db_field=True, fields=None):
@ -1064,11 +1057,10 @@ class DictField(ComplexBaseField):
""" """
def __init__(self, field=None, *args, **kwargs): def __init__(self, field=None, *args, **kwargs):
self.field = field
self._auto_dereference = False self._auto_dereference = False
kwargs.setdefault("default", lambda: {}) kwargs.setdefault("default", lambda: {})
super().__init__(*args, **kwargs) super().__init__(*args, field=field, **kwargs)
def validate(self, value): def validate(self, value):
"""Make sure that a list of valid fields is being used.""" """Make sure that a list of valid fields is being used."""