From 844d87ca062c6d7f2896f0e3892705364c5c1464 Mon Sep 17 00:00:00 2001 From: Daverball Date: Mon, 21 Oct 2024 12:06:08 +0200 Subject: [PATCH 1/3] Bump WTForms to 3.2.* --- stubs/WTForms/METADATA.toml | 4 +- stubs/WTForms/wtforms/__init__.pyi | 39 ++++++++++++++++++- stubs/WTForms/wtforms/fields/__init__.pyi | 44 ++++++++++++++++++---- stubs/WTForms/wtforms/widgets/__init__.pyi | 31 ++++++++++++++- stubs/WTForms/wtforms/widgets/core.pyi | 4 +- 5 files changed, 108 insertions(+), 14 deletions(-) diff --git a/stubs/WTForms/METADATA.toml b/stubs/WTForms/METADATA.toml index d9080fa07019..9573b6c75f8a 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 e440ec792e79..4463365c9e75 100644 --- a/stubs/WTForms/wtforms/__init__.pyi +++ b/stubs/WTForms/wtforms/__init__.pyi @@ -1,4 +1,41 @@ 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 diff --git a/stubs/WTForms/wtforms/fields/__init__.pyi b/stubs/WTForms/wtforms/fields/__init__.pyi index d96ee0b4a7ff..2d18051f6e6d 100644 --- a/stubs/WTForms/wtforms/fields/__init__.pyi +++ b/stubs/WTForms/wtforms/fields/__init__.pyi @@ -1,8 +1,38 @@ -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, +) diff --git a/stubs/WTForms/wtforms/widgets/__init__.pyi b/stubs/WTForms/wtforms/widgets/__init__.pyi index 89e4b0488d59..caa6bfd04738 100644 --- a/stubs/WTForms/wtforms/widgets/__init__.pyi +++ b/stubs/WTForms/wtforms/widgets/__init__.pyi @@ -1,2 +1,29 @@ -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, +) diff --git a/stubs/WTForms/wtforms/widgets/core.pyi b/stubs/WTForms/wtforms/widgets/core.pyi index 6b13b06cece7..62861c43cb66 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", From a29ce329f6bc164e6a3dc86f2095dc1ba13b231e Mon Sep 17 00:00:00 2001 From: Daverball Date: Mon, 21 Oct 2024 12:26:08 +0200 Subject: [PATCH 2/3] Adds __all__ and missing import that got auto-removed by ruff --- stubs/WTForms/wtforms/fields/__init__.pyi | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/stubs/WTForms/wtforms/fields/__init__.pyi b/stubs/WTForms/wtforms/fields/__init__.pyi index 2d18051f6e6d..f385fa26f423 100644 --- a/stubs/WTForms/wtforms/fields/__init__.pyi +++ b/stubs/WTForms/wtforms/fields/__init__.pyi @@ -36,3 +36,40 @@ from wtforms.fields.simple import ( 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", +] From 86b1b3ecd23e2f9f39c095775334eda807789484 Mon Sep 17 00:00:00 2001 From: Daverball Date: Mon, 21 Oct 2024 12:41:29 +0200 Subject: [PATCH 3/3] Adds all the missing `__all__` declarations and `__version__` --- stubs/WTForms/wtforms/__init__.pyi | 42 ++++++++++++++++++++++ stubs/WTForms/wtforms/csrf/core.pyi | 2 ++ stubs/WTForms/wtforms/csrf/session.pyi | 2 ++ 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 | 30 ++++++++++++++++ 10 files changed, 136 insertions(+) diff --git a/stubs/WTForms/wtforms/__init__.pyi b/stubs/WTForms/wtforms/__init__.pyi index 4463365c9e75..48d33781d4d3 100644 --- a/stubs/WTForms/wtforms/__init__.pyi +++ b/stubs/WTForms/wtforms/__init__.pyi @@ -1,3 +1,5 @@ +from typing import Final + from wtforms import validators as validators, widgets as widgets from wtforms.fields.choices import ( RadioField as RadioField, @@ -39,3 +41,43 @@ from wtforms.fields.simple import ( ) 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 785f34a985fe..4db69c8c5223 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 6b2ccd98e83c..954734a7b065 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/choices.pyi b/stubs/WTForms/wtforms/fields/choices.pyi index 5a2eff87ad94..06f160738fb2 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 4b181bc156b1..426dbfaec91f 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 3b029e263699..2fe08f0b9f16 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 f5fe3eda7e86..09d06ab2b9c8 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 0fa58d5fe0e6..13bc3f4ed45d 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 e6d22833c762..a5d1c4ca6304 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 caa6bfd04738..919a43b3e49a 100644 --- a/stubs/WTForms/wtforms/widgets/__init__.pyi +++ b/stubs/WTForms/wtforms/widgets/__init__.pyi @@ -27,3 +27,33 @@ from wtforms.widgets.core import ( 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", +]