From a4fff1549160641a668148da37a3fa28dc3519b6 Mon Sep 17 00:00:00 2001 From: Bastien Gerard Date: Tue, 8 Dec 2020 22:41:27 +0100 Subject: [PATCH] minor improvement in code --- mongoengine/base/fields.py | 7 ++++--- mongoengine/document.py | 1 - mongoengine/fields.py | 22 +++++++--------------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/mongoengine/base/fields.py b/mongoengine/base/fields.py index 7bab813c..e6208fb6 100644 --- a/mongoengine/base/fields.py +++ b/mongoengine/base/fields.py @@ -1,5 +1,4 @@ import operator -import warnings import weakref from bson import DBRef, ObjectId, SON @@ -20,7 +19,7 @@ class BaseField: .. versionchanged:: 0.5 - added verbose and help text """ - name = None + name = None # set in TopLevelDocumentMetaclass _geo_index = False _auto_gen = False # Call `generate` to generate a value _auto_dereference = True @@ -269,7 +268,9 @@ class ComplexBaseField(BaseField): .. versionadded:: 0.5 """ - field = None + def __init__(self, field=None, **kwargs): + self.field = field + super().__init__(**kwargs) def __get__(self, instance, owner): """Descriptor to automatically dereference references.""" diff --git a/mongoengine/document.py b/mongoengine/document.py index 801c8df8..972fa757 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -1,5 +1,4 @@ import re -import warnings from bson.dbref import DBRef import pymongo diff --git a/mongoengine/fields.py b/mongoengine/fields.py index db292ba9..3a1c28b9 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -36,7 +36,6 @@ from mongoengine.common import _import_class from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db from mongoengine.document import Document, EmbeddedDocument 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.base import BaseQuerySet from mongoengine.queryset.transform import STRING_OPERATORS @@ -546,11 +545,11 @@ class DateTimeField(BaseField): if callable(value): return value() - if not isinstance(value, str): + if isinstance(value, str): + return self._parse_datetime(value) + else: return None - return self._parse_datetime(value) - def _parse_datetime(self, value): # Attempt to parse a datetime from a string value = value.strip() @@ -913,10 +912,9 @@ class ListField(ComplexBaseField): """ def __init__(self, field=None, max_length=None, **kwargs): - self.field = field self.max_length = max_length kwargs.setdefault("default", lambda: []) - super().__init__(**kwargs) + super().__init__(field=field, **kwargs) def __get__(self, instance, owner): if instance is None: @@ -1004,14 +1002,9 @@ class SortedListField(ListField): .. versionchanged:: 0.6 - added reverse keyword """ - _ordering = None - _order_reverse = False - def __init__(self, field, **kwargs): - if "ordering" in kwargs.keys(): - self._ordering = kwargs.pop("ordering") - if "reverse" in kwargs.keys(): - self._order_reverse = kwargs.pop("reverse") + self._ordering = kwargs.pop("ordering", None) + self._order_reverse = kwargs.pop("reverse", False) super().__init__(field, **kwargs) 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): - self.field = field self._auto_dereference = False kwargs.setdefault("default", lambda: {}) - super().__init__(*args, **kwargs) + super().__init__(*args, field=field, **kwargs) def validate(self, value): """Make sure that a list of valid fields is being used."""