django-bulk-hooks 0.2.65__tar.gz → 0.2.66__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of django-bulk-hooks might be problematic. Click here for more details.

Files changed (27) hide show
  1. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/helpers.py +8 -1
  3. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/LICENSE +0 -0
  5. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/README.md +0 -0
  6. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/changeset.py +0 -0
  8. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/conditions.py +0 -0
  9. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/constants.py +0 -0
  10. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/context.py +0 -0
  11. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/decorators.py +0 -0
  12. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/dispatcher.py +0 -0
  13. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/enums.py +0 -0
  14. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/factory.py +0 -0
  15. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/handler.py +0 -0
  16. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/manager.py +0 -0
  17. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/models.py +0 -0
  18. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/__init__.py +0 -0
  19. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/analyzer.py +0 -0
  20. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/bulk_executor.py +0 -0
  21. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/coordinator.py +0 -0
  22. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/field_utils.py +0 -0
  23. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/mti_handler.py +0 -0
  24. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/mti_plans.py +0 -0
  25. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/operations/record_classifier.py +0 -0
  26. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/queryset.py +0 -0
  27. {django_bulk_hooks-0.2.65 → django_bulk_hooks-0.2.66}/django_bulk_hooks/registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.2.65
3
+ Version: 0.2.66
4
4
  Summary: Hook-style hooks for Django bulk operations like bulk_create and bulk_update.
5
5
  License: MIT
6
6
  Keywords: django,bulk,hooks
@@ -52,11 +52,18 @@ def build_changeset_for_update(
52
52
  if old_records_map is None:
53
53
  old_records_map = {}
54
54
 
55
+ # Smart pre-computation logic:
56
+ # - If update_kwargs non-empty and old_records exist: Don't precompute (QuerySet.update case)
57
+ # - If update_kwargs empty and old_records exist: Don't precompute (upsert case)
58
+ # - If update_kwargs empty and no old_records: Precompute as empty (validation case)
59
+ should_precompute = not bool(update_kwargs) and old_records_map is None
60
+ changed_fields = list(update_kwargs.keys()) if should_precompute else None
61
+
55
62
  changes = [
56
63
  RecordChange(
57
64
  new,
58
65
  old_records_map.get(new.pk),
59
- changed_fields=list(update_kwargs.keys()),
66
+ changed_fields=changed_fields,
60
67
  )
61
68
  for new in instances
62
69
  ]
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.2.65"
3
+ version = "0.2.66"
4
4
  description = "Hook-style hooks for Django bulk operations like bulk_create and bulk_update."
5
5
  authors = ["Konrad Beck <konrad.beck@merchantcapital.co.za>"]
6
6
  readme = "README.md"