Skip to content

Commit

Permalink
Merge branch 'main' into py-3.12-third-party
Browse files Browse the repository at this point in the history
  • Loading branch information
srittau authored Oct 21, 2024
2 parents c519795 + 8d02c2a commit 794cef7
Show file tree
Hide file tree
Showing 18 changed files with 319 additions and 29 deletions.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -638,8 +638,8 @@ following criteria is met:
* The upstream package ships a `py.typed` file for at least six months,
and the upstream type annotations are of a comparable standard to those in
typeshed, or
* the package does not support any of the Python versions supported by
typeshed.
* the upstream package was declared or appears to be unmaintained, and
retaining the stubs causes maintenance issues in typeshed.

If a package ships its own `py.typed` file, please follow these steps:

Expand Down
18 changes: 13 additions & 5 deletions stdlib/ast.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2023,11 +2023,19 @@ class NodeVisitor:
def visit_AugLoad(self, node: AugLoad) -> Any: ...
def visit_AugStore(self, node: AugStore) -> Any: ...
def visit_Param(self, node: Param) -> Any: ...
def visit_Num(self, node: Num) -> Any: ...
def visit_Str(self, node: Str) -> Any: ...
def visit_Bytes(self, node: Bytes) -> Any: ...
def visit_NameConstant(self, node: NameConstant) -> Any: ...
def visit_Ellipsis(self, node: Ellipsis) -> Any: ...

if sys.version_info < (3, 14):
@deprecated("Replaced by visit_Constant; removed in Python 3.14")
def visit_Num(self, node: Num) -> Any: ... # type: ignore[deprecated]
@deprecated("Replaced by visit_Constant; removed in Python 3.14")
def visit_Str(self, node: Str) -> Any: ... # type: ignore[deprecated]
@deprecated("Replaced by visit_Constant; removed in Python 3.14")
def visit_Bytes(self, node: Bytes) -> Any: ... # type: ignore[deprecated]
@deprecated("Replaced by visit_Constant; removed in Python 3.14")
def visit_NameConstant(self, node: NameConstant) -> Any: ... # type: ignore[deprecated]
@deprecated("Replaced by visit_Constant; removed in Python 3.14")
def visit_Ellipsis(self, node: Ellipsis) -> Any: ... # type: ignore[deprecated]


class NodeTransformer(NodeVisitor):
def generic_visit(self, node: AST) -> AST: ...
Expand Down
2 changes: 2 additions & 0 deletions stdlib/zipimport.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ from _typeshed import StrOrBytesPath
from importlib.abc import ResourceReader
from importlib.machinery import ModuleSpec
from types import CodeType, ModuleType
from typing_extensions import deprecated

__all__ = ["ZipImportError", "zipimporter"]

Expand All @@ -26,6 +27,7 @@ class zipimporter:
def get_resource_reader(self, fullname: str) -> ResourceReader | None: ... # undocumented
def get_source(self, fullname: str) -> str | None: ...
def is_package(self, fullname: str) -> bool: ...
@deprecated("Deprecated since 3.10; use exec_module() instead")
def load_module(self, fullname: str) -> ModuleType: ...
if sys.version_info >= (3, 10):
def exec_module(self, module: ModuleType) -> None: ...
Expand Down
4 changes: 2 additions & 2 deletions stubs/WTForms/METADATA.toml
Original file line number Diff line number Diff line change
@@ -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"]
81 changes: 80 additions & 1 deletion stubs/WTForms/wtforms/__init__.pyi
Original file line number Diff line number Diff line change
@@ -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",
]
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/csrf/core.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/csrf/session.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
81 changes: 74 additions & 7 deletions stubs/WTForms/wtforms/fields/__init__.pyi
Original file line number Diff line number Diff line change
@@ -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",
]
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/fields/choices.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/fields/datetime.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/fields/form.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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]):
Expand Down
2 changes: 2 additions & 0 deletions stubs/WTForms/wtforms/fields/list.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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]):
Expand Down
16 changes: 16 additions & 0 deletions stubs/WTForms/wtforms/fields/simple.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
36 changes: 36 additions & 0 deletions stubs/WTForms/wtforms/validators.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Loading

0 comments on commit 794cef7

Please sign in to comment.