rb-commons 0.4.11__py3-none-any.whl → 0.4.12__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.
@@ -103,6 +103,7 @@ class BaseManager(Generic[ModelType]):
103
103
  - __lte (field__lte=value)
104
104
  - __in (field__in=[val1, val2, ...])
105
105
  - __contains (field__contains='text')
106
+ - __null (field__null=True/False) - True for IS NULL, False for IS NOT NULL
106
107
 
107
108
  Additionally supports nested paths, e.g.,
108
109
  product__shop_id=None
@@ -116,7 +117,7 @@ class BaseManager(Generic[ModelType]):
116
117
 
117
118
  operator = "eq"
118
119
 
119
- if parts[-1] in {"eq", "ne", "gt", "lt", "gte", "lte", "in", "contains"}:
120
+ if parts[-1] in {"eq", "ne", "gt", "lt", "gte", "lte", "in", "contains", "null"}:
120
121
  operator = parts.pop()
121
122
 
122
123
  current_attr = self.model
@@ -159,6 +160,12 @@ class BaseManager(Generic[ModelType]):
159
160
  elif operator == "contains":
160
161
  # e.g., column ILIKE %value%
161
162
  self.filters.append(current_attr.ilike(f"%{value}%"))
163
+
164
+ elif operator == "null":
165
+ if value is True:
166
+ self.filters.append(current_attr.is_(None))
167
+ else:
168
+ self.filters.append(current_attr.isnot(None))
162
169
 
163
170
  return self
164
171
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rb-commons
3
- Version: 0.4.11
3
+ Version: 0.4.12
4
4
  Summary: Commons of project and simplified orm based on sqlalchemy.
5
5
  Home-page: https://github.com/RoboSell-organization/rb-commons
6
6
  Author: Abdulvoris
@@ -11,7 +11,7 @@ rb_commons/http/consul.py,sha256=Ioq72VD1jGwoC96set7n2SgxN40olzI-myA2lwKkYi4,186
11
11
  rb_commons/http/exceptions.py,sha256=EGRMr1cRgiJ9Q2tkfANbf0c6-zzXf1CD6J3cmCaT_FA,1885
12
12
  rb_commons/orm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  rb_commons/orm/exceptions.py,sha256=1aMctiEwrPjyehoXVX1l6ML5ZOhmDkmBISzlTD5ey1Y,509
14
- rb_commons/orm/managers.py,sha256=Q5nNAOPeTJvxlsG_OBrkBXiY2kfOhzrncXNap960Pw4,16286
14
+ rb_commons/orm/managers.py,sha256=vQ1S7g_wM0sg467HjJh6en-s5qmoO6i4-grjBSZCtgU,16634
15
15
  rb_commons/orm/services.py,sha256=71eRcJ4TxZvzNz-hLXo12X4U7PGK54ZfbLAb27AjZi8,1589
16
16
  rb_commons/permissions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  rb_commons/permissions/role_permissions.py,sha256=HL50s5RHW1nk2U3-YTESg0EDGkJDu1vN4QchcfK-L5g,988
@@ -20,7 +20,7 @@ rb_commons/schemes/jwt.py,sha256=F66JJDhholuOPPzlKeoC6f1TL4gXg4oRUrV5yheNpyo,167
20
20
  rb_commons/schemes/pagination.py,sha256=8VZW1wZGJIPR9jEBUgppZUoB4uqP8ORudHkMwvEJSxg,1866
21
21
  rb_commons/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  rb_commons/utils/media.py,sha256=KNY_9SdRa3Rp7d3B1tZaXkhmzVa65RcS62BYwZP1bVM,332
23
- rb_commons-0.4.11.dist-info/METADATA,sha256=RA17ihwr48Z2P0aXTiVzoeXMRq66-WtT_ViKrRZfU5o,6571
24
- rb_commons-0.4.11.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
25
- rb_commons-0.4.11.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
26
- rb_commons-0.4.11.dist-info/RECORD,,
23
+ rb_commons-0.4.12.dist-info/METADATA,sha256=nOLVXYvtQKAzUVihH3SaKNNF7AUQsUOjxCezGQ_vECw,6571
24
+ rb_commons-0.4.12.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
25
+ rb_commons-0.4.12.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
26
+ rb_commons-0.4.12.dist-info/RECORD,,