django-bulk-hooks 0.1.190__py3-none-any.whl → 0.1.191__py3-none-any.whl

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.

@@ -3,55 +3,24 @@ from django.db import models
3
3
  from django_bulk_hooks.queryset import HookQuerySet, HookQuerySetMixin
4
4
 
5
5
 
6
- def inject_bulk_hook_behavior(queryset):
7
- """
8
- Dynamically inject bulk hook behavior into any queryset.
9
- This follows the industry-standard pattern for cooperative queryset extensions.
10
-
11
- Args:
12
- queryset: Any Django QuerySet instance
13
-
14
- Returns:
15
- A new queryset instance with bulk hook functionality added
16
- """
17
- if isinstance(queryset, HookQuerySetMixin):
18
- # Already has hook functionality, return as-is
19
- return queryset
20
-
21
- # Create a new class that inherits from both HookQuerySetMixin and the queryset's class
22
- HookedQuerySetClass = type(
23
- "HookedQuerySet",
24
- (HookQuerySetMixin, queryset.__class__),
25
- {
26
- '__module__': 'django_bulk_hooks.queryset',
27
- '__doc__': f'Dynamically created queryset with bulk hook functionality for {queryset.__class__.__name__}'
28
- }
29
- )
30
-
31
- # Create a new instance with the same parameters
32
- new_queryset = HookedQuerySetClass(
33
- model=queryset.model,
34
- query=queryset.query,
35
- using=queryset._db,
36
- hints=queryset._hints
37
- )
38
-
39
- # Copy any additional attributes that might be important
40
- for attr, value in queryset.__dict__.items():
41
- if not hasattr(new_queryset, attr):
42
- setattr(new_queryset, attr, value)
43
-
44
- return new_queryset
45
-
46
-
47
6
  class BulkHookManager(models.Manager):
48
7
  def get_queryset(self):
49
8
  # Use super().get_queryset() to let Django and MRO build the queryset
50
9
  # This ensures cooperation with other managers
51
10
  base_queryset = super().get_queryset()
52
11
 
53
- # Inject our bulk hook behavior into the queryset
54
- return inject_bulk_hook_behavior(base_queryset)
12
+ # If the base queryset already has hook functionality, return it as-is
13
+ if isinstance(base_queryset, HookQuerySetMixin):
14
+ return base_queryset
15
+
16
+ # Otherwise, create a new HookQuerySet with the same parameters
17
+ # This is much simpler and avoids dynamic class creation issues
18
+ return HookQuerySet(
19
+ model=base_queryset.model,
20
+ query=base_queryset.query,
21
+ using=base_queryset._db,
22
+ hints=base_queryset._hints
23
+ )
55
24
 
56
25
  def bulk_create(
57
26
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.190
3
+ Version: 0.1.191
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
@@ -6,12 +6,12 @@ django_bulk_hooks/decorators.py,sha256=WD7Jn7QAvY8F4wOsYlIpjoM9-FdHXSKB7hH9ot-lk
6
6
  django_bulk_hooks/engine.py,sha256=nA5PU9msk_Ju5Gf_sTd7GqPscuTxEW5itCDAoSScYGI,1645
7
7
  django_bulk_hooks/enums.py,sha256=Zo8_tJzuzZ2IKfVc7gZ-0tWPT8q1QhqZbAyoh9ZVJbs,381
8
8
  django_bulk_hooks/handler.py,sha256=xZt8iNdYF-ACz-MnKMY0co6scWINU5V5wC1lyDn844k,4854
9
- django_bulk_hooks/manager.py,sha256=YvkwOix_740hxahCtDg1sK3eTHTAZnUSyF1T09VNBaY,4671
9
+ django_bulk_hooks/manager.py,sha256=nfWiwU5-yAoxdnQsUMohxtyCpkV0MBv6X3wmipr9eQY,3697
10
10
  django_bulk_hooks/models.py,sha256=7fnx5xd4HWXfLVlFhhiRzR92JRWFEuxgk6aSWLEsyJg,3996
11
11
  django_bulk_hooks/priority.py,sha256=HG_2D35nga68lBCZmSXTcplXrjFoRgZFRDOy4ROKonY,376
12
12
  django_bulk_hooks/queryset.py,sha256=eaeSmYW3VrJjhom_wXKzndmEkrKm-xaG0qflYhKSgIA,31663
13
13
  django_bulk_hooks/registry.py,sha256=-mQBizJ06nz_tajZBinViKx_uP2Tbc1tIpTEMv7lwKA,705
14
- django_bulk_hooks-0.1.190.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
- django_bulk_hooks-0.1.190.dist-info/METADATA,sha256=SskcUNxKkMSOb_OG2APxuDQf-pocG6dgPlXIBCg7PeY,7418
16
- django_bulk_hooks-0.1.190.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
- django_bulk_hooks-0.1.190.dist-info/RECORD,,
14
+ django_bulk_hooks-0.1.191.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
+ django_bulk_hooks-0.1.191.dist-info/METADATA,sha256=mRfmlZrQZOUaD8dQ50605aqAzIOF8-Z7fxzjl0z_oyU,7418
16
+ django_bulk_hooks-0.1.191.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
+ django_bulk_hooks-0.1.191.dist-info/RECORD,,