Piccolo

Latest version: v1.5.0

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

Scan your dependencies

Page 13 of 48

0.74.3

Not secure
------

If you had a table containing an array of ``BigInt``, then migrations could
fail:

.. code-block:: python

from piccolo.table import Table
from piccolo.columns.column_types import Array, BigInt

class MyTable(Table):
my_column = Array(base_column=BigInt())

It's because the ``BigInt`` base column needs access to the parent table to
know if it's targeting Postgres or SQLite. See `PR 501 <https://github.com/piccolo-orm/piccolo/pull/501>`_.

Thanks to cheesycod for reporting this issue.

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

0.74.2

Not secure
------

If a user created a custom ``Column`` subclass, then migrations would fail.
For example:

.. code-block:: python

class CustomColumn(Varchar):
def __init__(self, custom_arg: str = '', *args, **kwargs):
self.custom_arg = custom_arg
super().__init__(*args, **kwargs)

property
def column_type(self):
return 'VARCHAR'

See `PR 497 <https://github.com/piccolo-orm/piccolo/pull/497>`_. Thanks to
WintonLi for reporting this issue.

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

0.74.1

Not secure
------

When using ``pip install piccolo[all]`` on Windows it would fail because uvloop
isn't supported. Thanks to jack1142 for reporting this issue.

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

0.74.0

Not secure
------

We've had the ability to bulk modify rows for a while. Here we append ``'!!!'``
to each band's name:

.. code-block:: python

>>> await Band.update({Band.name: Band.name + '!!!'}, force=True)

It only worked for some columns - ``Varchar``, ``Text``, ``Integer`` etc.

We now allow ``Date``, ``Timestamp``, ``Timestamptz`` and ``Interval`` columns
to be bulk modified using a ``timedelta``. Here we modify each concert's start
date, so it's one day later:

.. code-block:: python

>>> await Concert.update(
... {Concert.starts: Concert.starts + timedelta(days=1)},
... force=True
... )

Thanks to theelderbeever for suggesting this feature.

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

0.73.0

Not secure
------

You can now specify extra nodes for a database. For example, if you have a
read replica.

.. code-block:: python

DB = PostgresEngine(
config={'database': 'main_db'},
extra_nodes={
'read_replica_1': PostgresEngine(
config={
'database': 'main_db',
'host': 'read_replica_1.my_db.com'
}
)
}
)

And can then run queries on these other nodes:

.. code-block:: python

>>> await MyTable.select().run(node="read_replica_1")

See `PR 481 <https://github.com/piccolo-orm/piccolo/pull/481>`_. Thanks to
dashsatish for suggesting this feature.

Also, the ``targ`` library has been updated so it tells users about the
``--trace`` argument which can be used to get a full traceback when a CLI
command fails.

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

0.72.0

Not secure
------

Fixed typos with ``drop_constraints``. Courtesy smythp.

Lots of documentation improvements, such as fixing Sphinx's autodoc for the
``Array`` column.

``AppConfig`` now accepts a ``pathlib.Path`` instance. For example:

.. code-block:: python

piccolo_app.py

import pathlib

APP_CONFIG = AppConfig(
app_name="blog",
migrations_folder_path=pathlib.Path(__file__) / "piccolo_migrations"
)

Thanks to theelderbeever for recommending this feature.

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

Page 13 of 48

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.