Pony ORM Release 0.7.16

Hi all! We released Pony ORM 0.7.16. This release includes:

  • A long-awaited support of Python 3.10.
  • A possibility to create shared-in memory SQLite databases that can be accessed from multiple threads

Support of Python 3.10

Previous versions of PonyORM use Python parser module from Python 2.x to parse Python AST. The support of this module was dropped in Python 3.10. Because of this, Pony ORM switches to new ast module.

With this change, the support of Python 2.7 and old versions of Python 3 was dropped, and the supported versions now are Python 3.6-Python 3.10

Shared in-memory SQLite databases

Previously in-memory SQLite databases are created in Pony ORM by specifying ":memory:" string as a database filename. The database created this way cannot be used in multiple threads. Now it is possible to use ":sharedmemory:" string to create a database that can be accessed from multiple threads.

Other changes

  • Do not perform optimistic checks when deleting an object (it is OK if it was already deleted by concurrent transaction)
  • Validation of int fields should take into account field size and check that the value is fit into the range
  • More tests for hybrid methods added
  • Fix incorrect assertion check `assert t is translator.`
  • Fix aggregated query sum(x.field for x in previous_query)
  • #594: Use a clearly synthetic filename when compiling dynamic code to not confuse coverage.py
  • Use DecompileError exception instead of AssertionError when a function cannot be decompiled