From 38fbbe71d4d4800899fe1996e8c7878b43403681 Mon Sep 17 00:00:00 2001 From: David Salvisberg Date: Mon, 21 Oct 2024 12:50:41 +0200 Subject: [PATCH] Bump WTForms to 3.2.* (#12865) Add missing `__all__` declarations --- stubs/WTForms/METADATA.toml | 4 +- stubs/WTForms/wtforms/__init__.pyi | 81 +++++++++++++++++++++- stubs/WTForms/wtforms/csrf/core.pyi | 2 + stubs/WTForms/wtforms/csrf/session.pyi | 2 + stubs/WTForms/wtforms/fields/__init__.pyi | 81 ++++++++++++++++++++-- stubs/WTForms/wtforms/fields/choices.pyi | 2 + stubs/WTForms/wtforms/fields/datetime.pyi | 2 + stubs/WTForms/wtforms/fields/form.pyi | 2 + stubs/WTForms/wtforms/fields/list.pyi | 2 + stubs/WTForms/wtforms/fields/simple.pyi | 16 +++++ stubs/WTForms/wtforms/validators.pyi | 36 ++++++++++ stubs/WTForms/wtforms/widgets/__init__.pyi | 61 +++++++++++++++- stubs/WTForms/wtforms/widgets/core.pyi | 4 +- 13 files changed, 281 insertions(+), 14 deletions(-) diff --git a/stubs/WTForms/METADATA.toml b/stubs/WTForms/METADATA.toml index d9080fa07..9573b6c75 100644 --- a/stubs/WTForms/METADATA.toml +++ b/stubs/WTForms/METADATA.toml @@ -1,3 +1,3 @@ -version = "3.1.*" -upstream_repository = "https://github.com/wtforms/wtforms" +version = "3.2.*" +upstream_repository = "https://github.com/pallets-eco/wtforms" requires = ["MarkupSafe"] diff --git a/stubs/WTForms/wtforms/__init__.pyi b/stubs/WTForms/wtforms/__init__.pyi index e440ec792..48d33781d 100644 --- a/stubs/WTForms/wtforms/__init__.pyi +++ b/stubs/WTForms/wtforms/__init__.pyi @@ -1,4 +1,83 @@ +from typing import Final + from wtforms import validators as validators, widgets as widgets -from wtforms.fields import * +from wtforms.fields.choices import ( + RadioField as RadioField, + SelectField as SelectField, + SelectMultipleField as SelectMultipleField, +) +from wtforms.fields.core import Field as Field, Flags as Flags, Label as Label +from wtforms.fields.datetime import ( + DateField as DateField, + DateTimeField as DateTimeField, + DateTimeLocalField as DateTimeLocalField, + MonthField as MonthField, + TimeField as TimeField, + WeekField as WeekField, +) +from wtforms.fields.form import FormField as FormField +from wtforms.fields.list import FieldList as FieldList +from wtforms.fields.numeric import ( + DecimalField as DecimalField, + DecimalRangeField as DecimalRangeField, + FloatField as FloatField, + IntegerField as IntegerField, + IntegerRangeField as IntegerRangeField, +) +from wtforms.fields.simple import ( + BooleanField as BooleanField, + ColorField as ColorField, + EmailField as EmailField, + FileField as FileField, + HiddenField as HiddenField, + MultipleFileField as MultipleFileField, + PasswordField as PasswordField, + SearchField as SearchField, + StringField as StringField, + SubmitField as SubmitField, + TelField as TelField, + TextAreaField as TextAreaField, + URLField as URLField, +) from wtforms.form import Form as Form from wtforms.validators import ValidationError as ValidationError + +__version__: Final[str] +__all__ = [ + "validators", + "widgets", + "Form", + "ValidationError", + "SelectField", + "SelectMultipleField", + "RadioField", + "Field", + "Flags", + "Label", + "DateTimeField", + "DateField", + "TimeField", + "MonthField", + "DateTimeLocalField", + "WeekField", + "FormField", + "FieldList", + "IntegerField", + "DecimalField", + "FloatField", + "IntegerRangeField", + "DecimalRangeField", + "BooleanField", + "TextAreaField", + "PasswordField", + "FileField", + "MultipleFileField", + "HiddenField", + "SearchField", + "SubmitField", + "StringField", + "TelField", + "URLField", + "EmailField", + "ColorField", +] diff --git a/stubs/WTForms/wtforms/csrf/core.pyi b/stubs/WTForms/wtforms/csrf/core.pyi index 785f34a98..4db69c8c5 100644 --- a/stubs/WTForms/wtforms/csrf/core.pyi +++ b/stubs/WTForms/wtforms/csrf/core.pyi @@ -8,6 +8,8 @@ from wtforms.fields.core import UnboundField, _Filter, _FormT, _Validator, _Widg from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ("CSRFTokenField", "CSRF") + class CSRFTokenField(HiddenField): current_token: str | None csrf_impl: CSRF diff --git a/stubs/WTForms/wtforms/csrf/session.pyi b/stubs/WTForms/wtforms/csrf/session.pyi index 6b2ccd98e..954734a7b 100644 --- a/stubs/WTForms/wtforms/csrf/session.pyi +++ b/stubs/WTForms/wtforms/csrf/session.pyi @@ -6,6 +6,8 @@ from wtforms.csrf.core import CSRF, CSRFTokenField from wtforms.form import BaseForm from wtforms.meta import DefaultMeta +__all__ = ("SessionCSRF",) + class SessionCSRF(CSRF): TIME_FORMAT: str form_meta: DefaultMeta diff --git a/stubs/WTForms/wtforms/fields/__init__.pyi b/stubs/WTForms/wtforms/fields/__init__.pyi index d96ee0b4a..f385fa26f 100644 --- a/stubs/WTForms/wtforms/fields/__init__.pyi +++ b/stubs/WTForms/wtforms/fields/__init__.pyi @@ -1,8 +1,75 @@ -from wtforms.fields.choices import * -from wtforms.fields.choices import SelectFieldBase as SelectFieldBase +from wtforms.fields.choices import ( + RadioField as RadioField, + SelectField as SelectField, + SelectMultipleField as SelectMultipleField, +) from wtforms.fields.core import Field as Field, Flags as Flags, Label as Label -from wtforms.fields.datetime import * -from wtforms.fields.form import * -from wtforms.fields.list import * -from wtforms.fields.numeric import * -from wtforms.fields.simple import * +from wtforms.fields.datetime import ( + DateField as DateField, + DateTimeField as DateTimeField, + DateTimeLocalField as DateTimeLocalField, + MonthField as MonthField, + TimeField as TimeField, + WeekField as WeekField, +) +from wtforms.fields.form import FormField as FormField +from wtforms.fields.list import FieldList as FieldList +from wtforms.fields.numeric import ( + DecimalField as DecimalField, + DecimalRangeField as DecimalRangeField, + FloatField as FloatField, + IntegerField as IntegerField, + IntegerRangeField as IntegerRangeField, +) +from wtforms.fields.simple import ( + BooleanField as BooleanField, + ColorField as ColorField, + EmailField as EmailField, + FileField as FileField, + HiddenField as HiddenField, + MultipleFileField as MultipleFileField, + PasswordField as PasswordField, + SearchField as SearchField, + StringField as StringField, + SubmitField as SubmitField, + TelField as TelField, + TextAreaField as TextAreaField, + URLField as URLField, +) +from wtforms.utils import unset_value as _unset_value + +__all__ = [ + "Field", + "Flags", + "Label", + "SelectField", + "SelectMultipleField", + "RadioField", + "DateTimeField", + "DateField", + "TimeField", + "MonthField", + "DateTimeLocalField", + "WeekField", + "FormField", + "IntegerField", + "DecimalField", + "FloatField", + "IntegerRangeField", + "DecimalRangeField", + "BooleanField", + "TextAreaField", + "PasswordField", + "FileField", + "MultipleFileField", + "HiddenField", + "SearchField", + "SubmitField", + "StringField", + "TelField", + "URLField", + "EmailField", + "ColorField", + "FieldList", + "_unset_value", +] diff --git a/stubs/WTForms/wtforms/fields/choices.pyi b/stubs/WTForms/wtforms/fields/choices.pyi index 5a2eff87a..06f160738 100644 --- a/stubs/WTForms/wtforms/fields/choices.pyi +++ b/stubs/WTForms/wtforms/fields/choices.pyi @@ -6,6 +6,8 @@ from wtforms.fields.core import Field, _Filter, _FormT, _Validator, _Widget from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ("SelectField", "SelectMultipleField", "RadioField") + # technically this allows a list, but we're more strict for type safety _Choice: TypeAlias = tuple[Any, str] | tuple[Any, str, dict[str, Any]] # it's too difficult to get type safety here due to to nested partially invariant collections diff --git a/stubs/WTForms/wtforms/fields/datetime.pyi b/stubs/WTForms/wtforms/fields/datetime.pyi index 4b181bc15..426dbfaec 100644 --- a/stubs/WTForms/wtforms/fields/datetime.pyi +++ b/stubs/WTForms/wtforms/fields/datetime.pyi @@ -7,6 +7,8 @@ from wtforms.fields.core import Field, _Filter, _FormT, _Validator, _Widget from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ("DateTimeField", "DateField", "TimeField", "MonthField", "DateTimeLocalField", "WeekField") + class DateTimeField(Field): format: list[str] strptime_format: list[str] diff --git a/stubs/WTForms/wtforms/fields/form.pyi b/stubs/WTForms/wtforms/fields/form.pyi index 3b029e263..2fe08f0b9 100644 --- a/stubs/WTForms/wtforms/fields/form.pyi +++ b/stubs/WTForms/wtforms/fields/form.pyi @@ -5,6 +5,8 @@ from wtforms.fields.core import Field, _Widget from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ("FormField",) + _BoundFormT = TypeVar("_BoundFormT", bound=BaseForm) class FormField(Field, Generic[_BoundFormT]): diff --git a/stubs/WTForms/wtforms/fields/list.pyi b/stubs/WTForms/wtforms/fields/list.pyi index f5fe3eda7..09d06ab2b 100644 --- a/stubs/WTForms/wtforms/fields/list.pyi +++ b/stubs/WTForms/wtforms/fields/list.pyi @@ -5,6 +5,8 @@ from wtforms.fields.core import Field, UnboundField, _FormT, _Validator, _Widget from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ("FieldList",) + _BoundFieldT = TypeVar("_BoundFieldT", bound=Field) class FieldList(Field, Generic[_BoundFieldT]): diff --git a/stubs/WTForms/wtforms/fields/simple.pyi b/stubs/WTForms/wtforms/fields/simple.pyi index 0fa58d5fe..13bc3f4ed 100644 --- a/stubs/WTForms/wtforms/fields/simple.pyi +++ b/stubs/WTForms/wtforms/fields/simple.pyi @@ -6,6 +6,22 @@ from wtforms.fields.core import Field, _Filter, _FormT, _Validator, _Widget from wtforms.form import BaseForm from wtforms.meta import DefaultMeta, _SupportsGettextAndNgettext +__all__ = ( + "BooleanField", + "TextAreaField", + "PasswordField", + "FileField", + "MultipleFileField", + "HiddenField", + "SearchField", + "SubmitField", + "StringField", + "TelField", + "URLField", + "EmailField", + "ColorField", +) + class BooleanField(Field): data: bool default: bool | Callable[[], bool] | None diff --git a/stubs/WTForms/wtforms/validators.pyi b/stubs/WTForms/wtforms/validators.pyi index e6d22833c..a5d1c4ca6 100644 --- a/stubs/WTForms/wtforms/validators.pyi +++ b/stubs/WTForms/wtforms/validators.pyi @@ -6,6 +6,42 @@ from typing import Any, TypeVar, overload from wtforms.fields import Field, StringField from wtforms.form import BaseForm +__all__ = ( + "DataRequired", + "data_required", + "Email", + "email", + "EqualTo", + "equal_to", + "IPAddress", + "ip_address", + "InputRequired", + "input_required", + "Length", + "length", + "NumberRange", + "number_range", + "Optional", + "optional", + "Regexp", + "regexp", + "URL", + "url", + "AnyOf", + "any_of", + "NoneOf", + "none_of", + "MacAddress", + "mac_address", + "UUID", + "ValidationError", + "StopValidation", + "readonly", + "ReadOnly", + "disabled", + "Disabled", +) + _ValuesT = TypeVar("_ValuesT", bound=Collection[Any], contravariant=True) class ValidationError(ValueError): diff --git a/stubs/WTForms/wtforms/widgets/__init__.pyi b/stubs/WTForms/wtforms/widgets/__init__.pyi index 89e4b0488..919a43b3e 100644 --- a/stubs/WTForms/wtforms/widgets/__init__.pyi +++ b/stubs/WTForms/wtforms/widgets/__init__.pyi @@ -1,2 +1,59 @@ -from wtforms.widgets.core import * -from wtforms.widgets.core import Input as Input, html_params as html_params +from wtforms.widgets.core import ( + CheckboxInput as CheckboxInput, + ColorInput as ColorInput, + DateInput as DateInput, + DateTimeInput as DateTimeInput, + DateTimeLocalInput as DateTimeLocalInput, + EmailInput as EmailInput, + FileInput as FileInput, + HiddenInput as HiddenInput, + Input as Input, + ListWidget as ListWidget, + MonthInput as MonthInput, + NumberInput as NumberInput, + Option as Option, + PasswordInput as PasswordInput, + RadioInput as RadioInput, + RangeInput as RangeInput, + SearchInput as SearchInput, + Select as Select, + SubmitInput as SubmitInput, + TableWidget as TableWidget, + TelInput as TelInput, + TextArea as TextArea, + TextInput as TextInput, + TimeInput as TimeInput, + URLInput as URLInput, + WeekInput as WeekInput, + html_params as html_params, +) + +__all__ = [ + "CheckboxInput", + "ColorInput", + "DateInput", + "DateTimeInput", + "DateTimeLocalInput", + "EmailInput", + "FileInput", + "HiddenInput", + "ListWidget", + "MonthInput", + "NumberInput", + "Option", + "PasswordInput", + "RadioInput", + "RangeInput", + "SearchInput", + "Select", + "SubmitInput", + "TableWidget", + "TextArea", + "TextInput", + "TelInput", + "TimeInput", + "URLInput", + "WeekInput", + "html_params", + "Input", +] diff --git a/stubs/WTForms/wtforms/widgets/core.pyi b/stubs/WTForms/wtforms/widgets/core.pyi index 6b13b06ce..62861c43c 100644 --- a/stubs/WTForms/wtforms/widgets/core.pyi +++ b/stubs/WTForms/wtforms/widgets/core.pyi @@ -2,8 +2,8 @@ from decimal import Decimal from typing import Any, Literal from markupsafe import Markup -from wtforms.fields import Field, FormField, SelectFieldBase, StringField -from wtforms.fields.choices import _Option +from wtforms.fields import Field, FormField, StringField +from wtforms.fields.choices import SelectFieldBase, _Option __all__ = ( "CheckboxInput",