Skip to content

Commit 37f52ae

Browse files
committed
[Flask-Cors] Update type annotation for origins to also allow Pattern
1 parent df45287 commit 37f52ae

2 files changed

Lines changed: 4 additions & 7 deletions

File tree

stubs/Flask-Cors/flask_cors/core.pyi

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ _MultiDict: TypeAlias = Any # werkzeug is not part of typeshed
1313
@type_check_only
1414
class _Options(TypedDict, total=False):
1515
resources: dict[str, dict[str, Any]] | list[str] | str | None
16-
origins: str | list[str] | None
16+
origins: str | Pattern[str] | list[str | Pattern[str]] | None
1717
methods: str | list[str] | None
1818
expose_headers: str | list[str] | None
1919
allow_headers: str | list[str] | None
@@ -49,26 +49,22 @@ def get_cors_origins(options: _Options, request_origin: str | None) -> list[str]
4949
def get_allow_headers(options: _Options, acl_request_headers: str | None) -> str | None: ...
5050
def get_cors_headers(options: _Options, request_headers: dict[str, Any], request_method: str) -> _MultiDict: ...
5151
def set_cors_headers(resp: flask.Response, options: _Options) -> flask.Response: ...
52-
5352
@overload
5453
def probably_regex(maybe_regex: Pattern[str]) -> Literal[True]: ...
5554
@overload
5655
def probably_regex(maybe_regex: str) -> bool: ...
57-
5856
def re_fix(reg: str) -> str: ...
5957
def try_match_any_pattern(inst: str, patterns: Iterable[str | Pattern[str]], caseSensitive: bool = True) -> bool: ...
6058
def try_match_pattern(value: str, pattern: str | Pattern[str], caseSensitive: bool = True) -> bool | Match[str]: ...
6159
def get_cors_options(appInstance: flask.Flask | None, *dicts: _Options) -> _Options: ...
6260
def get_app_kwarg_dict(appInstance: flask.Flask | None = None) -> _Options: ...
6361
def flexible_str(obj: object) -> str | None: ...
6462
def serialize_option(options_dict: _Options, key: str, upper: bool = False) -> None: ...
65-
6663
@overload
6764
def ensure_iterable(inst: str) -> list[str]: ... # type: ignore[overload-overlap]
6865
@overload
6966
def ensure_iterable(inst: _IterableT) -> _IterableT: ... # type: ignore[overload-overlap]
7067
@overload
7168
def ensure_iterable(inst: _T) -> list[_T]: ...
72-
7369
def sanitize_regex_param(param: str | list[str]) -> list[str]: ...
7470
def serialize_options(opts: _Options) -> _Options: ...

stubs/Flask-Cors/flask_cors/extension.pyi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from collections.abc import Callable, Iterable
22
from datetime import timedelta
33
from logging import Logger
4+
from re import Pattern
45
from typing import Any
56

67
import flask
@@ -13,7 +14,7 @@ class CORS:
1314
app: flask.Flask | flask.Blueprint | None = None,
1415
*,
1516
resources: dict[str, dict[str, Any]] | list[str] | str | None = ...,
16-
origins: str | list[str] | None = ...,
17+
origins: str | Pattern[str] | list[str | Pattern[str]] | None = ...,
1718
methods: str | list[str] | None = ...,
1819
expose_headers: str | list[str] | None = ...,
1920
allow_headers: str | list[str] | None = ...,
@@ -28,7 +29,7 @@ class CORS:
2829
app: flask.Flask,
2930
*,
3031
resources: dict[str, dict[str, Any]] | list[str] | str = ...,
31-
origins: str | list[str] = ...,
32+
origins: str | Pattern[str] | list[str | Pattern[str]] = ...,
3233
methods: str | list[str] = ...,
3334
expose_headers: str | list[str] = ...,
3435
allow_headers: str | list[str] = ...,

0 commit comments

Comments
 (0)