Skip to content

Releases: piccolo-orm/piccolo

1.1.1

10 Nov 17:30
Compare
Choose a tag to compare

Piccolo allows the user to specify savepoint names which are used in transactions. For example:

async with DB.transaction() as transaction:
    await Band.insert(Band(name='Pythonistas'))

    # Passing in a savepoint name is optional:
    savepoint_1 = await transaction.savepoint('savepoint_1')

    await Band.insert(Band(name='Terrible band'))

    # Oops, I made a mistake!
    await savepoint_1.rollback_to()

Postgres doesn't allow us to parameterise savepoint names, which means there's a small chance of SQL injection, if for some reason the savepoint names were generated from end-user input. Even though the likelihood is very low, it's best to be safe. We now validate the savepoint name, to make sure it can only contain certain safe characters. Thanks to @Skelmis for making this change.

1.1.0

03 Nov 15:11
Compare
Choose a tag to compare

Added support for Python 3.12.

Modified create_pydantic_model, so additional information is returned in the JSON schema to distinguish between Timestamp and Timestamptz columns. This will be used for future Piccolo Admin enhancements.

1.0.0

20 Oct 03:41
Compare
Choose a tag to compare

Piccolo v1 is now available!

We migrated to Pydantic v2, and also migrated Piccolo Admin to Vue 3, which puts the project in a good place moving forward.

We don't anticipate any major issues for people who are upgrading. If you encounter any bugs let us know.

Make sure you have v1 of Piccolo, Piccolo API, and Piccolo Admin.

1.0a3

19 Oct 16:36
Compare
Choose a tag to compare
1.0a3 Pre-release
Pre-release

Namespaced all custom values we add to Pydantic's JSON schema for easier maintenance.

0.121.0

11 Sep 19:45
Compare
Choose a tag to compare

Modified the BaseUser.login logic so all code paths take the same time. Thanks to @Skelmis for this.

1.0a2

08 Sep 17:34
Compare
Choose a tag to compare
1.0a2 Pre-release
Pre-release

All of the changes from 0.120.0 merged into the v1 branch.

0.120.0

08 Sep 17:23
Compare
Choose a tag to compare

Highlights

Improved how ModelBuilder generates JSON data.

The number of password hash iterations used in BaseUser has been increased to keep pace with the latest guidance from OWASP - thanks to @Skelmis for this.

Fixed a bug with auto migrations when the table is in a schema (thanks to @lherrman for reporting this).

PRs

New Contributors

Full Changelog: 0.119.0...0.120.0

1.0a1

02 Aug 21:40
Compare
Choose a tag to compare
1.0a1 Pre-release
Pre-release

Initial alpha release of Piccolo v1, with Pydantic v2 support (thanks to @sinisaos for helping with this).

0.119.0

21 Jul 14:07
Compare
Choose a tag to compare

ModelBuilder now works with LazyTableReference (which is used when we have circular references caused by a ForeignKey).

With this table:

class Band(Table):
    manager = ForeignKey(
        LazyTableReference(
            'Manager',
            module_path='some.other.folder.tables'
        )
    )

We can now create a dynamic test fixture:

my_model = await ModelBuilder.build(Band)

0.118.0

14 Jul 11:58
Compare
Choose a tag to compare

If you have lots of Piccolo apps, you can now create auto migrations for them all in one go:

piccolo migrations new all --auto
Screenshot 2023-07-14 at 12 11 28

Thanks to @hoosnick for suggesting this new feature.

The documentation for running migrations has also been improved, as well as improvements to the sorting of migrations based on their dependencies.

Support for Python 3.7 was dropped in this release as it's now end of life.