From e00d68897a2a6590fdd41b531e0cc9cde22108f8 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 30 Mar 2023 15:17:05 +0300 Subject: [PATCH 1/2] Remove `Flask-SQLAlchemy`, refs #8885 --- pyrightconfig.stricter.json | 1 - stubs/Flask-Migrate/METADATA.toml | 2 +- .../@tests/stubtest_allowlist.txt | 2 - stubs/Flask-SQLAlchemy/METADATA.toml | 6 -- .../flask_sqlalchemy/__init__.pyi | 97 ------------------- .../flask_sqlalchemy/model.pyi | 25 ----- .../flask_sqlalchemy/utils.pyi | 3 - tests/pytype_exclude_list.txt | 3 - 8 files changed, 1 insertion(+), 138 deletions(-) delete mode 100644 stubs/Flask-SQLAlchemy/@tests/stubtest_allowlist.txt delete mode 100644 stubs/Flask-SQLAlchemy/METADATA.toml delete mode 100644 stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi delete mode 100644 stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi delete mode 100644 stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 9125ba43ddeb..d75dc198eea2 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -34,7 +34,6 @@ "stubs/dateparser", "stubs/docutils", "stubs/Flask-Migrate", - "stubs/Flask-SQLAlchemy", "stubs/fpdf2", "stubs/html5lib", "stubs/httplib2", diff --git a/stubs/Flask-Migrate/METADATA.toml b/stubs/Flask-Migrate/METADATA.toml index 7e798f1a28e9..60b6d55ad61c 100644 --- a/stubs/Flask-Migrate/METADATA.toml +++ b/stubs/Flask-Migrate/METADATA.toml @@ -1,6 +1,6 @@ version = "4.0.*" # Requires a version of flask with a `py.typed` file -requires = ["Flask>=2.0.0", "types-Flask-SQLAlchemy"] +requires = ["Flask>=2.0.0", "Flask-SQLAlchemy>=3.0.1"] [tool.stubtest] ignore_missing_stub = true diff --git a/stubs/Flask-SQLAlchemy/@tests/stubtest_allowlist.txt b/stubs/Flask-SQLAlchemy/@tests/stubtest_allowlist.txt deleted file mode 100644 index 2187a2368259..000000000000 --- a/stubs/Flask-SQLAlchemy/@tests/stubtest_allowlist.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Needed due dynamic attribute generation -flask_sqlalchemy.SQLAlchemy.__getattr__ diff --git a/stubs/Flask-SQLAlchemy/METADATA.toml b/stubs/Flask-SQLAlchemy/METADATA.toml deleted file mode 100644 index d3d266df0aa8..000000000000 --- a/stubs/Flask-SQLAlchemy/METADATA.toml +++ /dev/null @@ -1,6 +0,0 @@ -version = "2.5.*" -requires = ["types-SQLAlchemy"] -obsolete_since = "3.0.1" # Released on 2022-10-11 - -[tool.stubtest] -ignore_missing_stub = true diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi deleted file mode 100644 index 3b92518bde99..000000000000 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi +++ /dev/null @@ -1,97 +0,0 @@ -from _typeshed import Incomplete -from collections.abc import Generator -from typing import Any, Generic, TypeVar - -from sqlalchemy.orm import scoped_session -from sqlalchemy.orm.query import Query -from sqlalchemy.orm.session import Session - -from . import utils as utils -from .model import DefaultMeta as DefaultMeta, Model as Model - -models_committed: Any -before_models_committed: Any - -class SignallingSession(Session): - app: Any - def __init__(self, db, autocommit: bool = False, autoflush: bool = True, **options) -> None: ... - def get_bind(self, mapper: Incomplete | None = None, clause: Incomplete | None = None): ... # type: ignore[override] - -def get_debug_queries(): ... - -_T = TypeVar("_T") - -class BaseQuery(Query[_T]): - def get_or_404(self, ident, description: Incomplete | None = None): ... - def first_or_404(self, description: Incomplete | None = None): ... - def paginate( - self, - page: Incomplete | None = None, - per_page: Incomplete | None = None, - error_out: bool = True, - max_per_page: Incomplete | None = None, - ) -> Pagination[_T]: ... - -class Pagination(Generic[_T]): - query: BaseQuery[_T] | None - page: int - per_page: int - total: int | None - items: Any - def __init__(self, query: BaseQuery[_T] | None, page: int, per_page: int, total: int | None, items) -> None: ... - @property - def pages(self) -> int: ... - def prev(self, error_out: bool = False) -> Pagination[_T]: ... - @property - def prev_num(self) -> int | None: ... - @property - def has_prev(self) -> bool: ... - def next(self, error_out: bool = False) -> Pagination[_T]: ... - @property - def has_next(self) -> bool: ... - @property - def next_num(self) -> int | None: ... - def iter_pages( - self, left_edge: int = 2, left_current: int = 2, right_current: int = 5, right_edge: int = 2 - ) -> Generator[int | None, None, None]: ... - -def get_state(app): ... - -class SQLAlchemy: - Query: Any - use_native_unicode: Any - session: scoped_session - Model: Model - app: Any - def __init__( - self, - app: Incomplete | None = None, - use_native_unicode: bool = True, - session_options: Incomplete | None = None, - metadata: Incomplete | None = None, - query_class=..., - model_class=..., - engine_options: Incomplete | None = None, - ) -> None: ... - @property - def metadata(self): ... - def create_scoped_session(self, options: Incomplete | None = None): ... - def create_session(self, options): ... - def make_declarative_base(self, model, metadata: Incomplete | None = None): ... - def init_app(self, app): ... - def apply_pool_defaults(self, app, options): ... - def apply_driver_hacks(self, app, sa_url, options): ... - @property - def engine(self): ... - def make_connector(self, app: Incomplete | None = None, bind: Incomplete | None = None): ... - def get_engine(self, app: Incomplete | None = None, bind: Incomplete | None = None): ... - def create_engine(self, sa_url, engine_opts): ... - def get_app(self, reference_app: Incomplete | None = None): ... - def get_tables_for_bind(self, bind: Incomplete | None = None): ... - def get_binds(self, app: Incomplete | None = None): ... - def create_all(self, bind: str = "__all__", app: Incomplete | None = None) -> None: ... - def drop_all(self, bind: str = "__all__", app: Incomplete | None = None) -> None: ... - def reflect(self, bind: str = "__all__", app: Incomplete | None = None) -> None: ... - def __getattr__(self, name: str) -> Any: ... # exposes dynamically classes of SQLAlchemy - -class FSADeprecationWarning(DeprecationWarning): ... diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi deleted file mode 100644 index f1780c09082f..000000000000 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi +++ /dev/null @@ -1,25 +0,0 @@ -from re import Pattern -from typing import Any - -from sqlalchemy import Table -from sqlalchemy.ext.declarative import DeclarativeMeta -from sqlalchemy.orm import Query - -def should_set_tablename(cls: type) -> bool: ... - -camelcase_re: Pattern[str] - -def camel_to_snake_case(name: str) -> str: ... - -class NameMetaMixin(type): - def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ... - def __table_cls__(cls, *args, **kwargs) -> Table | None: ... - -class BindMetaMixin(type): - def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ... - -class DefaultMeta(NameMetaMixin, BindMetaMixin, DeclarativeMeta): ... - -class Model: - query_class: type[Query[Any]] | None - query: Query[Any] | None diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi deleted file mode 100644 index 190d72483895..000000000000 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi +++ /dev/null @@ -1,3 +0,0 @@ -def parse_version(v: str) -> tuple[int, int, int]: ... -def sqlalchemy_version(op: str, val: str) -> bool: ... -def engine_config_warning(config, version: str, deprecated_config_key: str, engine_option) -> None: ... diff --git a/tests/pytype_exclude_list.txt b/tests/pytype_exclude_list.txt index ff83a0ce7990..cd81b10a1e0c 100644 --- a/tests/pytype_exclude_list.txt +++ b/tests/pytype_exclude_list.txt @@ -188,6 +188,3 @@ stubs/SQLAlchemy/sqlalchemy/sql/functions.pyi stubs/SQLAlchemy/sqlalchemy/sql/lambdas.pyi stubs/SQLAlchemy/sqlalchemy/sql/schema.pyi stubs/SQLAlchemy/sqlalchemy/sql/selectable.pyi -stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi -stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi -stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi From b5a0952ab9134805bc3c69e40d4e34a3deacd82a Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Thu, 30 Mar 2023 15:19:35 +0300 Subject: [PATCH 2/2] Update stubs/Flask-Migrate/METADATA.toml Co-authored-by: Alex Waygood --- stubs/Flask-Migrate/METADATA.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/Flask-Migrate/METADATA.toml b/stubs/Flask-Migrate/METADATA.toml index 60b6d55ad61c..be096fc5ad82 100644 --- a/stubs/Flask-Migrate/METADATA.toml +++ b/stubs/Flask-Migrate/METADATA.toml @@ -1,5 +1,5 @@ version = "4.0.*" -# Requires a version of flask with a `py.typed` file +# Requires versions of flask/Flask-SQLAlchemy with `py.typed` files requires = ["Flask>=2.0.0", "Flask-SQLAlchemy>=3.0.1"] [tool.stubtest]