Piccolo

Latest version: v1.22.0

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

Scan your dependencies

Page 11 of 53

0.107.0

Not secure
-------

Added the ``log_responses`` option to the database engines. This makes the
engine print out the raw response from the database for each query, which
is useful during debugging.

.. code-block:: python

piccolo_conf.py

DB = PostgresEngine(
config={'database': 'my_database'},
log_queries=True,
log_responses=True
)

We also updated the Starlite ASGI template - it now uses the new import paths
(thanks to sinisaos for this).

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

0.106.0

Not secure
-------

Joins now work within ``update`` queries. For example:

.. code-block:: python

await Band.update({
Band.name: 'Amazing Band'
}).where(
Band.manager.name == 'Guido'
)

Other changes:

* Improved the template used by ``piccolo app new`` when creating a new
Piccolo app (it now uses ``table_finder``).

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

0.105.0

Not secure
-------

Improved the performance of select queries with complex joins. Many thanks to
powellnorma and sinisaos for their help with this.

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

0.104.0

Not secure
-------

Major improvements to Piccolo's typing / auto completion support.

For example:

.. code-block:: python

>>> bands = await Band.objects() List[Band]

>>> band = await Band.objects().first() Optional[Band]

>>> bands = await Band.select().output(as_json=True) str

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

0.103.0

Not secure
-------

``SelectRaw``
~~~~~~~~~~~~~

This allows you to access features in the database which aren't exposed
directly by Piccolo. For example, Postgres functions:

.. code-block:: python

from piccolo.query import SelectRaw

>>> await Band.select(
... Band.name,
... SelectRaw("log(popularity) AS log_popularity")
... )
[{'name': 'Pythonistas', 'log_popularity': 3.0}]

Large fixtures
~~~~~~~~~~~~~~

Piccolo can now load large fixtures using ``piccolo fixtures load``. The
rows are inserted in batches, so the database adapter doesn't raise any errors.

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

0.102.0

Not secure
-------

Migration file names
~~~~~~~~~~~~~~~~~~~~

The naming convention for migrations has changed slightly. It used to be just
a timestamp - for example:

.. code-block:: text

2021-09-06T13-58-23-024723.py

By convention Python files should start with a letter, and only contain
``a-z``, ``0-9`` and ``_``, so the new format is:

.. code-block:: text

my_app_2021_09_06T13_58_23_024723.py

.. note:: You can name a migration file anything you want (it's the ``ID``
value inside it which is important), so this change doesn't break anything.

Enhanced Pydantic configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We now expose all of Pydantic's configuration options to
``create_pydantic_model``:

.. code-block:: python

class MyPydanticConfig(pydantic.BaseConfig):
extra = 'forbid'

model = create_pydantic_model(
table=MyTable,
pydantic_config_class=MyPydanticConfig
)

Thanks to waldner for this.

Other changes
~~~~~~~~~~~~~

* Fixed a bug with ``get_or_create`` and null columns (thanks to powellnorma
for reporting this issue).
* Updated the Starlite ASGI template, so it uses the latest syntax for mounting
Piccolo Admin (thanks to sinisaos for this, and the Starlite team).

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

Page 11 of 53

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.