Skip to content

Commit f821aa1

Browse files
committed
Deprecate validators and filters keyword arguments
1 parent 61de931 commit f821aa1

File tree

3 files changed

+43
-8
lines changed

3 files changed

+43
-8
lines changed

flask_mongoengine/db_fields.py

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"UUIDField",
4343
]
4444
import decimal
45+
import warnings
4546
from typing import Callable, List, Optional, Union
4647

4748
from bson import ObjectId
@@ -81,17 +82,47 @@ def __init__(
8182
*,
8283
validators: Optional[Union[List, Callable]] = None,
8384
filters: Optional[Union[List, Callable]] = None,
85+
wtf_filters: Optional[Union[List, Callable]] = None,
86+
wtf_validators: Optional[Union[List, Callable]] = None,
8487
**kwargs,
8588
):
8689
"""
8790
Extended :func:`__init__` method for mongoengine db field with WTForms options.
8891
89-
:param validators: wtf model form field validators.
90-
:param filters: wtf model form field filters.
92+
:param filters: DEPRECATED: wtf form field filters.
93+
:param validators: DEPRECATED: wtf form field validators.
94+
:param wtf_filters: wtf form field filters.
95+
:param wtf_validators: wtf form field validators.
9196
:param kwargs: keyword arguments silently bypassed to normal mongoengine fields
9297
"""
93-
self.validators = self._ensure_callable_or_list(validators, "validators")
94-
self.filters = self._ensure_callable_or_list(filters, "filters")
98+
if validators is not None:
99+
warnings.warn(
100+
(
101+
"Passing 'validators' keyword argument to field definition is "
102+
"deprecated and will be removed in version 3.0.0. "
103+
"Please rename 'validators' to 'wtf_validators'. "
104+
"If both values set, 'wtf_validators' is used."
105+
),
106+
DeprecationWarning,
107+
stacklevel=2,
108+
)
109+
if filters is not None:
110+
warnings.warn(
111+
(
112+
"Passing 'filters' keyword argument to field definition is "
113+
"deprecated and will be removed in version 3.0.0. "
114+
"Please rename 'filters' to 'wtf_filters'. "
115+
"If both values set, 'wtf_filters' is used."
116+
),
117+
DeprecationWarning,
118+
stacklevel=2,
119+
)
120+
self.wtf_validators = self._ensure_callable_or_list(
121+
wtf_validators or validators, "wtf_validators"
122+
)
123+
self.wtf_filters = self._ensure_callable_or_list(
124+
wtf_filters or filters, "wtf_filters"
125+
)
95126

96127
# Some attributes that will be updated by parent methods
97128
self.required = False

flask_mongoengine/wtf/orm.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,12 @@ def _generate_convert_base_kwargs(self, field, field_args) -> dict:
5555
kwargs: dict = {
5656
"label": getattr(field, "verbose_name", field.name),
5757
"description": getattr(field, "help_text", None) or "",
58-
"validators": getattr(field, "validators", None) or [],
59-
"filters": getattr(field, "filters", None) or [],
58+
"validators": getattr(field, "wtf_validators", None)
59+
or getattr(field, "validators", None)
60+
or [],
61+
"filters": getattr(field, "wtf_filters", None)
62+
or getattr(field, "filters", None)
63+
or [],
6064
"default": field.default,
6165
}
6266
if field_args:

tests/test_db_fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ def test__init__set_additional_instance_arguments(self, db, mocker: MockerFixtur
9292
checker_spy = mocker.spy(db_fields.WtfFieldMixin, "_ensure_callable_or_list")
9393

9494
string = db.StringField(validators=[1, 2], filters=[1, 2])
95-
assert string.validators == [1, 2]
96-
assert string.filters == [1, 2]
95+
assert string.wtf_validators == [1, 2]
96+
assert string.wtf_filters == [1, 2]
9797
checker_spy.assert_called()
9898
assert checker_spy.call_count == 2
9999

0 commit comments

Comments
 (0)