piccolo 1.24.1__py3-none-any.whl → 1.24.2__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.
piccolo/__init__.py CHANGED
@@ -1 +1 @@
1
- __VERSION__ = "1.24.1"
1
+ __VERSION__ = "1.24.2"
@@ -45,11 +45,11 @@ class Combination(CombinableMixin):
45
45
  )
46
46
 
47
47
  @property
48
- def querystring_for_update(self) -> QueryString:
48
+ def querystring_for_update_and_delete(self) -> QueryString:
49
49
  return QueryString(
50
50
  "({} " + self.operator + " {})",
51
- self.first.querystring_for_update,
52
- self.second.querystring_for_update,
51
+ self.first.querystring_for_update_and_delete,
52
+ self.second.querystring_for_update_and_delete,
53
53
  )
54
54
 
55
55
  def __str__(self):
@@ -131,7 +131,7 @@ class WhereRaw(CombinableMixin):
131
131
  self.querystring = QueryString(sql, *args)
132
132
 
133
133
  @property
134
- def querystring_for_update(self) -> QueryString:
134
+ def querystring_for_update_and_delete(self) -> QueryString:
135
135
  return self.querystring
136
136
 
137
137
  def __str__(self):
@@ -218,7 +218,7 @@ class Where(CombinableMixin):
218
218
  return QueryString(template, *args)
219
219
 
220
220
  @property
221
- def querystring_for_update(self) -> QueryString:
221
+ def querystring_for_update_and_delete(self) -> QueryString:
222
222
  args: t.List[t.Any] = []
223
223
  if self.value != UNDEFINED:
224
224
  args.append(self.value)
@@ -61,7 +61,7 @@ class Delete(Query):
61
61
  querystring = QueryString(
62
62
  "{} WHERE {}",
63
63
  querystring,
64
- self.where_delegate._where.querystring,
64
+ self.where_delegate._where.querystring_for_update_and_delete,
65
65
  )
66
66
 
67
67
  if self.returning_delegate._returning:
@@ -104,7 +104,7 @@ class Update(Query[TableInstance, t.List[t.Any]]):
104
104
  querystring = QueryString(
105
105
  "{} WHERE {}",
106
106
  querystring,
107
- self.where_delegate._where.querystring_for_update,
107
+ self.where_delegate._where.querystring_for_update_and_delete,
108
108
  )
109
109
 
110
110
  if self.returning_delegate._returning:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: piccolo
3
- Version: 1.24.1
3
+ Version: 1.24.2
4
4
  Summary: A fast, user friendly ORM and query builder which supports asyncio.
5
5
  Home-page: https://github.com/piccolo-orm/piccolo
6
6
  Author: Daniel Townsend
@@ -1,4 +1,4 @@
1
- piccolo/__init__.py,sha256=fqbFeUPVIVzt-2TqaZSPsISdBRr5iqLv8pFlnMYP1pU,23
1
+ piccolo/__init__.py,sha256=53bY15Zwtb-mVcNomjadBbUceria081xCDSw7iTXiZM,23
2
2
  piccolo/custom_types.py,sha256=7HMQAze-5mieNLfbQ5QgbRQgR2abR7ol0qehv2SqROY,604
3
3
  piccolo/main.py,sha256=1VsFV67FWTUikPTysp64Fmgd9QBVa_9wcwKfwj2UCEA,5117
4
4
  piccolo/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -124,7 +124,7 @@ piccolo/columns/__init__.py,sha256=OYhO_n9anMiU9nL-K6ATq9FhAtm8RyMpqYQ7fTVbhxI,1
124
124
  piccolo/columns/base.py,sha256=_bg9yMWjMwE76Z7RDqi9iYSmtRuFx5bkx9uYJsFHKjQ,32487
125
125
  piccolo/columns/choices.py,sha256=-HNQuk9vMmVZIPZ5PMeXGTfr23o4nzKPSAkvcG1k0y8,723
126
126
  piccolo/columns/column_types.py,sha256=Wo6g14aL1vpOFugsY-6n-q6JUJaKih-cIn9NBp-f3fI,84759
127
- piccolo/columns/combination.py,sha256=vMXC2dfY7pvnCFhsT71XFVyb4gdQzfRsCMaiduu04Ss,6900
127
+ piccolo/columns/combination.py,sha256=NUOxmYcx84JW-2FcoF1XJVp_4R01aTJyl3waPzfZ4Tc,6955
128
128
  piccolo/columns/indexes.py,sha256=NfNok3v_791jgDlN28KmhP9ZCjl6031BXmjxV3ovXJk,372
129
129
  piccolo/columns/m2m.py,sha256=QMeSOnm4DT2cG9U5jC6sOZ6z9DxCWwDyZMSqk0wR2q4,14682
130
130
  piccolo/columns/readable.py,sha256=hganxUPfIK5ZXn-qgteBxsOJfBJucgr9U0QLsLFYcuI,1562
@@ -167,7 +167,7 @@ piccolo/query/methods/alter.py,sha256=AI9YkJeip2EitrWJN_TDExXhA8HGAG3XuDz1NR-Kir
167
167
  piccolo/query/methods/count.py,sha256=Vxn_7Ry-rleC6OGRxh-cLbuEMsy1DNjAZJThGED-_do,1748
168
168
  piccolo/query/methods/create.py,sha256=hJ-6VVsWczzKDH6fQRN1WmYhcitixuXJ-eNOuCo_JgM,2742
169
169
  piccolo/query/methods/create_index.py,sha256=gip_cRXZkLfpJqCL7KHk2l_7HLptoa-Ae8qu6I5d5c8,2224
170
- piccolo/query/methods/delete.py,sha256=3QNh8wsn2hUP1Ce9nz5ps1huU6ySHjyqkjdP-VYN-U8,2234
170
+ piccolo/query/methods/delete.py,sha256=X11IjaQ4kIPGDtYGVQBqbkm3MP6fDI2WuP4h1ri4zSQ,2256
171
171
  piccolo/query/methods/drop_index.py,sha256=5x3vHpoOmQ1SMhj6L7snKXX6M9l9j1E1PFSO6LMMkpY,1051
172
172
  piccolo/query/methods/exists.py,sha256=lTMjtrFPFygZmaPV3sfQKXc3K0sVqJ2S6PDc3fRK6YQ,1203
173
173
  piccolo/query/methods/indexes.py,sha256=J-QUqaBJwpgahskUH0Cu0Mq7zEKcfVAtDsUVIVX-C4c,943
@@ -177,7 +177,7 @@ piccolo/query/methods/raw.py,sha256=wQWR8b-yA_Gr-5lqRMZe9BOAAMBAw8CqTx37qVYvM1A,
177
177
  piccolo/query/methods/refresh.py,sha256=wg1zghKfwz-VmqK4uWa4GNMiDtK-skTqow591Hb3ONM,5854
178
178
  piccolo/query/methods/select.py,sha256=41OW-DIE_wr5VdxSusMKNT2aUhzQsCwK2Qh1XqgXHg0,22424
179
179
  piccolo/query/methods/table_exists.py,sha256=0yb3n6Jd2ovSBWlZ-gl00K4E7Jnbj7J8qAAX5d7hvNk,1259
180
- piccolo/query/methods/update.py,sha256=LfWqIXEl1aecc0rkVssTFmwyD6wXGhlKcTrUVhtlEsw,3705
180
+ piccolo/query/methods/update.py,sha256=KNrx5yzY3gshTNzXf392M7Aamz7TPZzZFHLhbDiEDu8,3716
181
181
  piccolo/query/operators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
182
  piccolo/query/operators/json.py,sha256=hdo1M6N9qTHJTJ0sRV9Bwt_iQZTgs4VdCKOPH1sXe-k,3168
183
183
  piccolo/testing/__init__.py,sha256=pRFSqRInfx95AakOq54atmvqoB-ue073q2aR8u8zR40,83
@@ -199,7 +199,7 @@ piccolo/utils/sync.py,sha256=j9Abkxn5HHS6HyvfpMzb1zV_teTkFHVhaIxu9rrSwSU,819
199
199
  piccolo/utils/warnings.py,sha256=ONrurw3HVCClUuHnpenMjg45dcFesrXqMgG9ifgP4_8,1247
200
200
  piccolo/utils/graphlib/__init__.py,sha256=SUJ5Yh7LiRun3nkBuLUSVmGNHF6fANrxSoYan0mtYB0,200
201
201
  piccolo/utils/graphlib/_graphlib.py,sha256=9FNGDSmTIEAk86FktniCe_J2yXjSE_sRZHDBAJJAUOw,9677
202
- piccolo-1.24.1.dist-info/licenses/LICENSE,sha256=zFIpi-16uIJ420UMIG75NU0JbDBykvrdnXcj5U_EYBI,1059
202
+ piccolo-1.24.2.dist-info/licenses/LICENSE,sha256=zFIpi-16uIJ420UMIG75NU0JbDBykvrdnXcj5U_EYBI,1059
203
203
  profiling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
204
  profiling/run_profile.py,sha256=264qsSFu93NTpExePnKQ9GkcN5fiuRBQ72WOSt0ZHck,829
205
205
  tests/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -335,7 +335,7 @@ tests/table/test_count.py,sha256=qm4dwlQJ5gv8FPSsgYTS-3Gsd_KLgvWlFnmXweKydxw,229
335
335
  tests/table/test_create.py,sha256=d-X7faDGI6NesvElu9JhrAo0Ialmrl6163Whd_LAUDQ,2887
336
336
  tests/table/test_create_db_tables.py,sha256=9ZVlv9jGX5uneMfM5c2j1LlOphgorFNHN1cQ1pay4gM,903
337
337
  tests/table/test_create_table_class.py,sha256=jOAxc38OhHBhdMzjsTOlYyzRjygj_5LXtsk46vmON_E,1745
338
- tests/table/test_delete.py,sha256=dUfGOz0p0OdwxtWhEH88OXL6zB5sd4ZyKvVmMs08T98,1252
338
+ tests/table/test_delete.py,sha256=NTUv3Dgo4cZp2kmIId4eBug3eW1IYVEtvs4AaQS14iA,1630
339
339
  tests/table/test_drop_db_tables.py,sha256=0a_aBZ8BMSLnu_DFXE_29X01B0jLdaa_WQ5_qTaZ5XY,1060
340
340
  tests/table/test_exists.py,sha256=AHvhodkRof7PVd4IDdGQ2nyOj_1Cag1Rpg1H84s4jU0,283
341
341
  tests/table/test_from_dict.py,sha256=I4PMxuzgkgi3-adaw9Gr3u5tQHexc31Vrq7RSPcPcJs,840
@@ -380,8 +380,8 @@ tests/utils/test_sql_values.py,sha256=vzxRmy16FfLZPH-sAQexBvsF9MXB8n4smr14qoEOS5
380
380
  tests/utils/test_sync.py,sha256=9ytVo56y2vPQePvTeIi9lHIouEhWJbodl1TmzkGFrSo,799
381
381
  tests/utils/test_table_reflection.py,sha256=SIzuat-IpcVj1GCFyOWKShI8YkhdOPPFH7qVrvfyPNE,3794
382
382
  tests/utils/test_warnings.py,sha256=NvSC_cvJ6uZcwAGf1m-hLzETXCqprXELL8zg3TNLVMw,269
383
- piccolo-1.24.1.dist-info/METADATA,sha256=E-iRyVUdWPUJprZz1ofdSYkE9OPTLlCQAi_lguMXQlg,5531
384
- piccolo-1.24.1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
385
- piccolo-1.24.1.dist-info/entry_points.txt,sha256=SJPHET4Fi1bN5F3WqcKkv9SClK3_F1I7m4eQjk6AFh0,46
386
- piccolo-1.24.1.dist-info/top_level.txt,sha256=-SR74VGbk43VoPy1HH-mHm97yoGukLK87HE5kdBW6qM,24
387
- piccolo-1.24.1.dist-info/RECORD,,
383
+ piccolo-1.24.2.dist-info/METADATA,sha256=zrjcB9J7oo9wGk6Z19Xgpm6Iupa_8VymJ9OOpIUMvA8,5531
384
+ piccolo-1.24.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
385
+ piccolo-1.24.2.dist-info/entry_points.txt,sha256=SJPHET4Fi1bN5F3WqcKkv9SClK3_F1I7m4eQjk6AFh0,46
386
+ piccolo-1.24.2.dist-info/top_level.txt,sha256=-SR74VGbk43VoPy1HH-mHm97yoGukLK87HE5kdBW6qM,24
387
+ piccolo-1.24.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (77.0.3)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -44,3 +44,18 @@ class TestDelete(DBTestCase):
44
44
  Band.delete().run_sync()
45
45
 
46
46
  Band.delete(force=True).run_sync()
47
+
48
+ def test_delete_with_joins(self):
49
+ """
50
+ Make sure delete works if the `where` clause specifies joins.
51
+ """
52
+
53
+ self.insert_rows()
54
+
55
+ Band.delete().where(Band.manager._.name == "Guido").run_sync()
56
+
57
+ response = (
58
+ Band.count().where(Band.manager._.name == "Guido").run_sync()
59
+ )
60
+
61
+ self.assertEqual(response, 0)