From 555f3dac284725a0a04849a1ff2aab4eb434c0f6 Mon Sep 17 00:00:00 2001 From: Willem van Bergen Date: Sat, 23 May 2026 05:16:21 -0400 Subject: [PATCH 1/2] [Flask-Cors] Update type annotation for origins to also allow Pattern --- stubs/Flask-Cors/flask_cors/core.pyi | 6 +----- stubs/Flask-Cors/flask_cors/extension.pyi | 5 +++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/stubs/Flask-Cors/flask_cors/core.pyi b/stubs/Flask-Cors/flask_cors/core.pyi index a0783f797a07..4bf16e3b8c83 100644 --- a/stubs/Flask-Cors/flask_cors/core.pyi +++ b/stubs/Flask-Cors/flask_cors/core.pyi @@ -13,7 +13,7 @@ _MultiDict: TypeAlias = Any # werkzeug is not part of typeshed @type_check_only class _Options(TypedDict, total=False): resources: dict[str, dict[str, Any]] | list[str] | str | None - origins: str | list[str] | None + origins: str | Pattern[str] | Iterable[str | Pattern[str]] | None methods: str | list[str] | None expose_headers: str | list[str] | None allow_headers: str | list[str] | None @@ -49,12 +49,10 @@ def get_cors_origins(options: _Options, request_origin: str | None) -> list[str] def get_allow_headers(options: _Options, acl_request_headers: str | None) -> str | None: ... def get_cors_headers(options: _Options, request_headers: dict[str, Any], request_method: str) -> _MultiDict: ... def set_cors_headers(resp: flask.Response, options: _Options) -> flask.Response: ... - @overload def probably_regex(maybe_regex: Pattern[str]) -> Literal[True]: ... @overload def probably_regex(maybe_regex: str) -> bool: ... - def re_fix(reg: str) -> str: ... def try_match_any_pattern(inst: str, patterns: Iterable[str | Pattern[str]], caseSensitive: bool = True) -> bool: ... def try_match_pattern(value: str, pattern: str | Pattern[str], caseSensitive: bool = True) -> bool | Match[str]: ... @@ -62,13 +60,11 @@ def get_cors_options(appInstance: flask.Flask | None, *dicts: _Options) -> _Opti def get_app_kwarg_dict(appInstance: flask.Flask | None = None) -> _Options: ... def flexible_str(obj: object) -> str | None: ... def serialize_option(options_dict: _Options, key: str, upper: bool = False) -> None: ... - @overload def ensure_iterable(inst: str) -> list[str]: ... # type: ignore[overload-overlap] @overload def ensure_iterable(inst: _IterableT) -> _IterableT: ... # type: ignore[overload-overlap] @overload def ensure_iterable(inst: _T) -> list[_T]: ... - def sanitize_regex_param(param: str | list[str]) -> list[str]: ... def serialize_options(opts: _Options) -> _Options: ... diff --git a/stubs/Flask-Cors/flask_cors/extension.pyi b/stubs/Flask-Cors/flask_cors/extension.pyi index 3120e406e2de..3c9316ca3ae3 100644 --- a/stubs/Flask-Cors/flask_cors/extension.pyi +++ b/stubs/Flask-Cors/flask_cors/extension.pyi @@ -1,6 +1,7 @@ from collections.abc import Callable, Iterable from datetime import timedelta from logging import Logger +from re import Pattern from typing import Any import flask @@ -13,7 +14,7 @@ class CORS: app: flask.Flask | flask.Blueprint | None = None, *, resources: dict[str, dict[str, Any]] | list[str] | str | None = ..., - origins: str | list[str] | None = ..., + origins: str | Pattern[str] | Iterable[str | Pattern[str]] | None = ..., methods: str | list[str] | None = ..., expose_headers: str | list[str] | None = ..., allow_headers: str | list[str] | None = ..., @@ -28,7 +29,7 @@ class CORS: app: flask.Flask, *, resources: dict[str, dict[str, Any]] | list[str] | str = ..., - origins: str | list[str] = ..., + origins: str | Pattern[str] | Iterable[str | Pattern[str]] = ..., methods: str | list[str] = ..., expose_headers: str | list[str] = ..., allow_headers: str | list[str] = ..., From b1293739072f0af0f9ab077b0f0327392e2d6887 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 10:15:26 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/Flask-Cors/flask_cors/core.pyi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stubs/Flask-Cors/flask_cors/core.pyi b/stubs/Flask-Cors/flask_cors/core.pyi index 4bf16e3b8c83..e4000c7b91a2 100644 --- a/stubs/Flask-Cors/flask_cors/core.pyi +++ b/stubs/Flask-Cors/flask_cors/core.pyi @@ -49,10 +49,12 @@ def get_cors_origins(options: _Options, request_origin: str | None) -> list[str] def get_allow_headers(options: _Options, acl_request_headers: str | None) -> str | None: ... def get_cors_headers(options: _Options, request_headers: dict[str, Any], request_method: str) -> _MultiDict: ... def set_cors_headers(resp: flask.Response, options: _Options) -> flask.Response: ... + @overload def probably_regex(maybe_regex: Pattern[str]) -> Literal[True]: ... @overload def probably_regex(maybe_regex: str) -> bool: ... + def re_fix(reg: str) -> str: ... def try_match_any_pattern(inst: str, patterns: Iterable[str | Pattern[str]], caseSensitive: bool = True) -> bool: ... def try_match_pattern(value: str, pattern: str | Pattern[str], caseSensitive: bool = True) -> bool | Match[str]: ... @@ -60,11 +62,13 @@ def get_cors_options(appInstance: flask.Flask | None, *dicts: _Options) -> _Opti def get_app_kwarg_dict(appInstance: flask.Flask | None = None) -> _Options: ... def flexible_str(obj: object) -> str | None: ... def serialize_option(options_dict: _Options, key: str, upper: bool = False) -> None: ... + @overload def ensure_iterable(inst: str) -> list[str]: ... # type: ignore[overload-overlap] @overload def ensure_iterable(inst: _IterableT) -> _IterableT: ... # type: ignore[overload-overlap] @overload def ensure_iterable(inst: _T) -> list[_T]: ... + def sanitize_regex_param(param: str | list[str]) -> list[str]: ... def serialize_options(opts: _Options) -> _Options: ...