Subject: CVS commit: pkgsrc/www/py-flask-sqlalchemy
From: Thomas Klausner
Date: 2024-03-06 22:17:23
Message id: 20240306211723.1AD6AFA29@cvs.NetBSD.org

Log Message:
py-flask-sqlalchemy: update to 3.1.1.

Version 3.1.1
-------------

Released 2023-09-11

-   Deprecate the ``__version__`` attribute. Use feature detection, or
    ``importlib.metadata.version("flask-sqlalchemy")``, instead. \ 
:issue:`5230`

Version 3.1.0
-------------

Released 2023-09-11

-   Drop support for Python 3.7.  :pr:`1251`
-   Add support for the SQLAlchemy 2.x API via ``model_class`` parameter. \ 
:issue:`1140`
-   Bump minimum version of SQLAlchemy to 2.0.16.
-   Remove previously deprecated code.
-   Pass extra keyword arguments from ``get_or_404`` to ``session.get``. \ 
:issue:`1149`
-   Fix bug with finding right bind key for clause statements. :issue:`1211`

Version 3.0.5
-------------

Released 2023-06-21

-   ``Pagination.next()`` enforces ``max_per_page``. :issue:`1201`
-   Improve type hint for ``get_or_404`` return value to be non-optional. :pr:`1226`

Version 3.0.4
-------------

Released 2023-06-19

-   Fix type hint for ``get_or_404`` return value. :pr:`1208`
-   Fix type hints for pyright (used by VS Code Pylance extension). :issue:`1205`

Version 3.0.3
-------------

Released 2023-01-31

-   Show helpful errors when mistakenly using multiple ``SQLAlchemy`` instances \ 
for the
    same app, or without calling ``init_app``. :pr:`1151`
-   Fix issue with getting the engine associated with a model that uses polymorphic
    table inheritance. :issue:`1155`

Version 3.0.2
-------------

Released 2022-10-14

-   Update compatibility with SQLAlchemy 2. :issue:`1122`

Version 3.0.1
-------------

Released 2022-10-11

-   Export typing information instead of using external typeshed definitions.
    :issue:`1112`
-   If default engine options are set, but ``SQLALCHEMY_DATABASE_URI`` is not set, an
    invalid default bind will not be configured. :issue:`1117`

Version 3.0.0
-------------

Released 2022-10-04

-   Drop support for Python 2, 3.4, 3.5, and 3.6.
-   Bump minimum version of Flask to 2.2.
-   Bump minimum version of SQLAlchemy to 1.4.18.
-   Remove previously deprecated code.
-   The session is scoped to the current app context instead of the thread. This
    requires that an app context is active. This ensures that the session is \ 
cleaned up
    after every request.
-   An active Flask application context is always required to access ``session`` and
    ``engine``, regardless of if an application was passed to the constructor.
    :issue:`508, 944`
-   Different bind keys use different SQLAlchemy ``MetaData`` registries, allowing
    tables in different databases to have the same name. Bind keys are stored \ 
and looked
    up on the resulting metadata rather than the model or table.
-   ``SQLALCHEMY_DATABASE_URI`` does not default to ``sqlite:///:memory:``. An \ 
error is
    raised if neither it nor ``SQLALCHEMY_BINDS`` define any engines. :pr:`731`
-   Configuring SQLite with a relative path is relative to ``app.instance_path`` \ 
instead
    of ``app.root_path``. The instance folder is created if necessary. :issue:`462`
-   Added ``get_or_404``, ``first_or_404``, ``one_or_404``, and ``paginate`` \ 
methods to
    the extension object. These use SQLAlchemy's preferred \ 
``session.execute(select())``
    pattern instead of the legacy query interface. :issue:`1088`
-   Setup methods that create the engines and session are renamed with a leading
    underscore. They are considered internal interfaces which may change at any time.
-   All parameters to ``SQLAlchemy`` except ``app`` are keyword-only.
-   Renamed the ``bind`` parameter to ``bind_key`` and removed the ``app`` parameter
    from various ``SQLAlchemy`` methods.
-   The extension object uses ``__getattr__`` to alias names from the SQLAlchemy
    package, rather than copying them as attributes.
-   The extension object is stored directly as \ 
``app.extensions["sqlalchemy"]``.
    :issue:`698`
-   The session class can be customized by passing the ``class_`` key in the
    ``session_options`` parameter. :issue:`327`
-   ``SignallingSession`` is renamed to ``Session``.
-   ``Session.get_bind`` more closely matches the base implementation.
-   Model classes and the ``db`` instance are available without imports in
    ``flask shell``. :issue:`1089`
-   The ``CamelCase`` to ``snake_case`` table name converter handles more patterns
    correctly. If model that was already created in the database changed, either use
    Alembic to rename the table, or set ``__tablename__`` to keep the old name.
    :issue:`406`
-   ``Model`` ``repr`` distinguishes between transient and pending instances.
    :issue:`967`
-   A custom model class can implement ``__init_subclass__`` with class parameters.
    :issue:`1002`
-   ``db.Table`` is a subclass instead of a function.
-   The ``engine_options`` parameter is applied as defaults before per-engine
    configuration.
-   ``SQLALCHEMY_BINDS`` values can either be an engine URL, or a dict of engine \ 
options
    including URL, for each bind. ``SQLALCHEMY_DATABASE_URI`` and
    ``SQLALCHEMY_ENGINE_OPTIONS`` correspond to the ``None`` key and take precedence.
    :issue:`783`
-   Engines are created when calling ``init_app`` rather than the first time they are
    accessed. :issue:`698`
-   ``db.engines`` exposes the map of bind keys to engines for the current app.
-   ``get_engine``, ``get_tables_for_bind``, and ``get_binds`` are deprecated.
-   SQLite driver-level URIs that look like ``sqlite:///file:name.db?uri=true`` are
    supported. :issue:`998, 1045`
-   SQLite engines do not use ``NullPool`` if ``pool_size`` is 0.
-   MySQL engines use the "utf8mb4" charset by default. :issue:`875`
-   MySQL engines do not set ``pool_size`` to 10.
-   MySQL engines don't set a default for ``pool_recycle`` if not using a queue pool.
    :issue:`803`
-   ``Query`` is renamed from ``BaseQuery``.
-   Added ``Query.one_or_404``.
-   The query class is applied to ``backref`` in ``relationship``. :issue:`417`
-   Creating ``Pagination`` objects manually is no longer a public API. They \ 
should be
    created with ``db.paginate`` or ``query.paginate``. :issue:`1088`
-   ``Pagination.iter_pages`` and ``Query.paginate`` parameters are keyword-only.
-   ``Pagination`` is iterable, iterating over its items. :issue:`70`
-   Pagination count query is more efficient.
-   ``Pagination.iter_pages`` is more efficient. :issue:`622`
-   ``Pagination.iter_pages`` ``right_current`` parameter is inclusive.
-   Pagination ``per_page`` cannot be 0. :issue:`1091`
-   Pagination ``max_per_page`` defaults to 100. :issue:`1091`
-   Added ``Pagination.first`` and ``last`` properties, which give the number of the
    first and last item on the page. :issue:`567`
-   ``SQLALCHEMY_RECORD_QUERIES`` is disabled by default, and is not enabled
    automatically with ``app.debug`` or ``app.testing``. :issue:`1092`
-   ``get_debug_queries`` is renamed to ``get_recorded_queries`` to better match the
    config and functionality.
-   Recorded query info is a dataclass instead of a tuple. The ``context`` \ 
attribute is
    renamed to ``location``. Finding the location uses a more inclusive check.
-   ``SQLALCHEMY_TRACK_MODIFICATIONS`` is disabled by default. :pr:`727`
-   ``SQLALCHEMY_COMMIT_ON_TEARDOWN`` is deprecated. It can cause various design \ 
issues
    that are difficult to debug. Call ``db.session.commit()`` directly instead.
    :issue:`216`

Files:
RevisionActionfile
1.18modifypkgsrc/www/py-flask-sqlalchemy/Makefile
1.5modifypkgsrc/www/py-flask-sqlalchemy/PLIST
1.14modifypkgsrc/www/py-flask-sqlalchemy/distinfo