Gino

Latest version: v1.0.1

Safety actively analyzes 706259 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 9

0.8

^^^^^^^^^^^^^^^^^^^^^

1. contextvars
""""""""""""""

We introduced aiocontextvars_ 0.2.0 which is revamped to be compatible with
PEP-567 without manual interference by a few simple implicit patches. To
upgrade to GINO 0.8, please remove the ``enable_inherit()`` or
``disable_inherit()`` calls, because they are the default behavior now thus
no longer exist. However, you'll need to confirm that the event loop in use is
always created **after** importing ``gino`` or ``aiocontextvars``, or the patch
won't work correctly.

There is nothing to worry about in Python 3.7.

2. none_as_none
"""""""""""""""

When GINO tries to load a row with all ``NULL`` values into an instance, it
will now by default return ``None`` instead of an instance with all ``None``
attributes. To recover the default behavior of 0.7, please specify
``none_as_none(False)`` in affected model loader.

This is especially applicable to relationship sub-loaders - if the sub-loader
found it all ``NULL``, no instance will be set to parent instance. For
example::

child = await Child.load(parent=Parent).query.gino.first()

If ``child.parent_id`` is ``NULL`` in database, then the ``child`` instance
won't be called with any ``setattr(child, 'parent', ...)`` at all. (If you need
``child.parent == None`` in this case, consider setting default value
``parent = None`` in child model.)

Please note, it is deprecated to disable ``none_as_none``, and disabling will
be removed in GINO 1.0.

0.8.0

^^^^^^^^^^^^^^^^^^

* Welcome Tony Wang to the maintenance team (335)
* Allowed custom column names (261 297)
* Allowed column instance in ``model.load()`` (Contributed by Jekel in 323)
* [Breaking] Upgraded to aiocontextvars 0.2.0 (333)
* Fixed bug that the same empty stack is shared between sub-tasks (313 334)
* [Breaking] Made ``none_as_none()`` the default behavior (351)
* Bug fixes and docs update

0.7.7

^^^^^^^^^^^^^^^^^^

* Backported fix for custom JSON/JSONB type support (402 403)

0.7.6

^^^^^^^^^^^^^^^^^^

* Updated library support (Contributed by Tony Wang in 275 309)
* Added ``none_as_none()`` (281 282)
* Added ``ARRAY`` alias in asyncpg dialect module (Contributed by Mykyta Holubakha in 289)
* Added ``Model.lookup()`` to prevent updating whole table without primary key (287 288)
* Added ``DB_ECHO`` in extension options (Contributed by Mykyta Holubakha in 298)
* Fixed broken JSON/JSONB result processor since 0.5.8 (Contributed by Tony Wang in 291 305)
* Removed bad rollback after a failing commit (Contributed by Tony Wang in 302 304)
* Fixed to raise ``UninitializedError`` if bind is ``None`` (Contributed by Tony Wang in 307 310)

0.7.5

^^^^^^^^^^^^^^^^^^

* Added friendly error message when using abstract models by mistake (224)
* Supported Python 3.7 (Contributed by Tony Wang in 265)
* Updated documentation
* Fixed a bug in TupleLoader (Contributed by Pavol Vargovcik in 279 280)

0.7.4

^^^^^^^^^^^^^^^^^^

* Added aiocontextvars as required dependency required for Python 3.5 and 3.6 (228)
* Added Quart support (213)
* Fixed Tornado options parsing (231)
* Improved coding style and test coverage

Page 3 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.