A fast, user friendly ORM and query builder which supports asyncio.
MIT License
Bot releases are visible (Hide)
Published by dantownsend about 3 years ago
compare_dicts
was failing in migrations if any Column
had an unhashable type as an argument. For example: Array(default=[])
. Thanks to @hipertracker for reporting this problem.Published by dantownsend about 3 years ago
Fix for auto migrations when using custom primary keys (thanks to @adriangb and @aminalaee for investigating this issue).
Published by dantownsend about 3 years ago
Migrations can now have a description, which is shown when using piccolo migrations check
. This makes migrations easier to identify (thanks to @davidolrik for the idea).
Published by dantownsend about 3 years ago
Added an all_columns
method, to make it easier to retrieve all related columns when doing a join. For example:
await Band.select(Band.name, *Band.manager.all_columns()).first().run()
Changed the instructions for installing additional dependencies, so they're wrapped in quotes, to make sure it works on ZSH (i.e.
pip install 'piccolo[postgres]'
instead of pip install piccolo[postgres]
).
Published by dantownsend about 3 years ago
The database drivers are now installed separately. For example: pip install piccolo[postgres]
(courtesy @aminalaee).
For some users this might be a breaking change - please make sure that for existing Piccolo projects you have either asyncpg
or piccolo[postgres]
in your requirements.txt
file.
Published by dantownsend about 3 years ago
The user can now specify the primary key column (courtesy @aminalaee). For example:
class RecordingStudio(Table):
pk = UUID(primary_key=True)
The BlackSheep template generated by piccolo asgi new
now supports mounting of the Piccolo Admin (courtesy @sinisaos).
Published by dantownsend about 3 years ago
Added aggregations functions, such as Sum
, Min
, Max
and Avg
, for use in select queries (courtesy @sinisaos).
Published by dantownsend about 3 years ago
Added uvloop as an optional dependency, installed via pip install piccolo[uvloop]
(courtesy @aminalaee).
uvloop is a faster implementation of the asyncio event loop found in Python's standard library.
When uvloop is installed, Piccolo will use it to increase the performance of the Piccolo CLI, and web servers such as Uvicorn will use it to increase the performance of your ASGI app.