DataJoint 2.2 Released #1421
dimitri-yatsenko
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We are happy to announce the release of DataJoint 2.2 for Python.
For a comprehensive overview, see What's New in DataJoint 2.2.
Highlights
Graph-driven cascade delete and restrict
The new
Diagram.cascade()classmethod replaces the old error-driven cascade approach. Delete and drop operations now use the pipeline DAG to determine affected tables before executing. New methods:Diagram.cascade(),Diagram.restrict(),Diagram.prune(),Diagram.counts(), with full dry-run support viasafemode=True. This also fixes the longstanding cascade delete failures on MySQL 8 (#1110).Thread-safe mode with
dj.InstanceNew
dj.Instance()class provides independent database connections with connection-scoped configuration, enabling safe concurrent access from multiple threads — essential for web servers, parallel workers, and multi-pipeline applications.Directory references in filepath storage
<filepath@store>now supports directory references.is_diris detected dynamically and existence checks handle directories correctly.Additional fixes
populate()withreserve_jobs=Truenow correctly applies restrictions (populate() with reserve_jobs=True ignores *restrictions #1413).proj()for correct pending key computation (Fix populate antijoin to use .proj() for correct pending key computation #1405)indexno longer cause parse errors (Bug: Cannot create attributes with names starting with 'index' due to regex mismatch in declaration parser #1411)skip_duplicates=Truebehavior on PostgreSQL documented and tested (Advanced handling of duplicates ininsert1#1049)Install or upgrade
Full release notes: https://github.com/datajoint/datajoint-python/releases/tag/v2.2.0
Beta Was this translation helpful? Give feedback.
All reactions