Piccolo

Latest version: v1.24.1

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

Scan your dependencies

Page 1 of 53

1.24.1

------

Fixed a bug with default values in ``Timestamp`` and ``Timestamptz`` columns.
Thanks to splch for this.

-------------------------------------------------------------------------------

1.24.0

------

* Fixed a bug with ``get_or_create`` when a table has a column with both
``null=False`` and ``default=None`` - thanks to bymoye for reporting this
issue.
* If a ``PostgresEngine`` uses the ``dsn`` argument for ``asyncpg``, this is
now used by ``piccolo sql_shell run``. Thanks to abhishek-compro for
suggesting this.
* Fixed the type annotation for the ``length`` argument of ``Varchar`` - it
is allowed to be ``None``. Thanks to Compro-Prasad for this.

-------------------------------------------------------------------------------

1.23.0

------

* Added Quart, Sanic, and Falcon as supported ASGI frameworks (thanks to
sinisaos for this).
* Fixed a bug with very large integers in SQLite.
* Fixed type annotation for ``Timestamptz`` default values (thanks to Skelmis
for this).

-------------------------------------------------------------------------------

1.22.0

------

Python 3.13 is now officially supported.

``JSON`` / ``JSONB`` querying has been significantly improved. For example, if
we have this table:

.. code-block:: python

class RecordingStudio(Table):
facilities = JSONB()

And the ``facilities`` column contains the following JSON data:

.. code-block:: python

{
"technicians": [
{"name": "Alice Jones"},
{"name": "Bob Williams"},
]
}

We can get the first technician name as follows:

.. code-block:: python

>>> await RecordingStudio.select(
... RecordingStudio.facilities["technicians"][0]["name"].as_alias("name")
... ).output(load_json=True)
[{'name': 'Alice Jones'}, ...]

``TableStorage`` (used for dynamically creating Piccolo ``Table`` classes from
an existing database) was improved, to support a Dockerised version of Piccolo
Admin, which is coming soon.

-------------------------------------------------------------------------------

1.21.0

------

Postgres 17 is now officially supported.

Fixed a bug with joins, when a ``ForeignKey`` column had ``db_column_name``
specified. Thanks to jessemcl-flwls for reporting this issue.

-------------------------------------------------------------------------------

1.20.0

------

``get_related`` now works multiple layers deep:

.. code-block:: python

concert = await Concert.objects().first()
manager = await concert.get_related(Concert.band_1._.manager)

-------------------------------------------------------------------------------

Page 1 of 53

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.