Merge lp:~jelmer/brz/pyo3-0.20 into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: 7927
Merged at revision: 7925
Proposed branch: lp:~jelmer/brz/pyo3-0.20
Merge into: lp:brz
Diff against target: 1760 lines (+304/-333)
23 files modified
Cargo.lock (+233/-267)
Cargo.toml (+2/-2)
breezy/bzr/groupcompress_repo.py (+3/-2)
breezy/plugins/launchpad/test_uris.py (+8/-4)
breezy/tests/test_osutils.py (+1/-1)
crates/bazaar-py/Cargo.toml (+1/-1)
crates/bazaar-py/src/dirstate.rs (+2/-2)
crates/bazaar-py/src/inventory.rs (+1/-1)
crates/bazaar-py/src/lib.rs (+3/-2)
crates/bazaar-py/src/rio.rs (+12/-12)
crates/bazaar-py/src/versionedfile.rs (+2/-0)
crates/cmd-py/Cargo.toml (+1/-1)
crates/cmd-py/src/lib.rs (+2/-2)
crates/graph-py/src/lib.rs (+4/-4)
crates/osutils-py/Cargo.toml (+1/-1)
crates/osutils-py/src/lib.rs (+9/-9)
crates/patch-py/Cargo.toml (+1/-1)
crates/patch-py/src/lib.rs (+2/-4)
crates/transport-py/Cargo.toml (+1/-1)
crates/transport-py/src/lib.rs (+7/-7)
crates/transport/Cargo.toml (+2/-2)
crates/transport/src/pyo3.rs (+3/-4)
crates/urlutils-py/src/lib.rs (+3/-3)
To merge this branch: bzr merge lp:~jelmer/brz/pyo3-0.20
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+459546@code.launchpad.net

Commit message

Bump pyo3 to 0.20, and migrate to pyo3-filelike

Description of the change

Bump pyo3 to 0.20, and migrate to pyo3-filelike

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve
lp:~jelmer/brz/pyo3-0.20 updated
7927. By Jelmer Vernooij

Fix formatting

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Cargo.lock'
2--- Cargo.lock 2023-11-25 16:49:52 +0000
3+++ Cargo.lock 2024-01-27 14:21:36 +0000
4@@ -19,9 +19,9 @@
5
6 [[package]]
7 name = "ahash"
8-version = "0.8.6"
9+version = "0.8.7"
10 source = "registry+https://github.com/rust-lang/crates.io-index"
11-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
12+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
13 dependencies = [
14 "cfg-if",
15 "once_cell",
16@@ -82,9 +82,9 @@
17
18 [[package]]
19 name = "base64"
20-version = "0.21.5"
21+version = "0.21.7"
22 source = "registry+https://github.com/rust-lang/crates.io-index"
23-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
24+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
25
26 [[package]]
27 name = "bazaar"
28@@ -120,7 +120,7 @@
29 "breezy-osutils",
30 "chrono",
31 "pyo3",
32- "pyo3-file",
33+ "pyo3-filelike",
34 ]
35
36 [[package]]
37@@ -155,9 +155,9 @@
38
39 [[package]]
40 name = "bitflags"
41-version = "2.4.1"
42+version = "2.4.2"
43 source = "registry+https://github.com/rust-lang/crates.io-index"
44-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
45+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
46
47 [[package]]
48 name = "block"
49@@ -262,7 +262,7 @@
50 "nix",
51 "path-clean",
52 "pyo3",
53- "pyo3-file",
54+ "pyo3-filelike",
55 "sftp",
56 "tempfile",
57 "url",
58@@ -294,49 +294,12 @@
59 checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
60
61 [[package]]
62-name = "bytecount"
63-version = "0.6.7"
64-source = "registry+https://github.com/rust-lang/crates.io-index"
65-checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
66-
67-[[package]]
68 name = "byteorder"
69 version = "1.5.0"
70 source = "registry+https://github.com/rust-lang/crates.io-index"
71 checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
72
73 [[package]]
74-name = "camino"
75-version = "1.1.6"
76-source = "registry+https://github.com/rust-lang/crates.io-index"
77-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
78-dependencies = [
79- "serde",
80-]
81-
82-[[package]]
83-name = "cargo-platform"
84-version = "0.1.4"
85-source = "registry+https://github.com/rust-lang/crates.io-index"
86-checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36"
87-dependencies = [
88- "serde",
89-]
90-
91-[[package]]
92-name = "cargo_metadata"
93-version = "0.14.2"
94-source = "registry+https://github.com/rust-lang/crates.io-index"
95-checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
96-dependencies = [
97- "camino",
98- "cargo-platform",
99- "semver",
100- "serde",
101- "serde_json",
102-]
103-
104-[[package]]
105 name = "cc"
106 version = "1.0.83"
107 source = "registry+https://github.com/rust-lang/crates.io-index"
108@@ -353,14 +316,14 @@
109
110 [[package]]
111 name = "chrono"
112-version = "0.4.31"
113+version = "0.4.33"
114 source = "registry+https://github.com/rust-lang/crates.io-index"
115-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
116+checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
117 dependencies = [
118 "android-tzdata",
119 "iana-time-zone",
120 "num-traits",
121- "windows-targets",
122+ "windows-targets 0.52.0",
123 ]
124
125 [[package]]
126@@ -371,20 +334,20 @@
127 "gettext-rs",
128 "log",
129 "pyo3",
130- "pyo3-file",
131+ "pyo3-filelike",
132 ]
133
134 [[package]]
135 name = "core-foundation-sys"
136-version = "0.8.4"
137+version = "0.8.6"
138 source = "registry+https://github.com/rust-lang/crates.io-index"
139-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
140+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
141
142 [[package]]
143 name = "cpufeatures"
144-version = "0.2.11"
145+version = "0.2.12"
146 source = "registry+https://github.com/rust-lang/crates.io-index"
147-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
148+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
149 dependencies = [
150 "libc",
151 ]
152@@ -436,7 +399,7 @@
153 "libc",
154 "option-ext",
155 "redox_users",
156- "windows-sys",
157+ "windows-sys 0.48.0",
158 ]
159
160 [[package]]
161@@ -456,21 +419,12 @@
162
163 [[package]]
164 name = "errno"
165-version = "0.3.7"
166+version = "0.3.8"
167 source = "registry+https://github.com/rust-lang/crates.io-index"
168-checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
169+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
170 dependencies = [
171 "libc",
172- "windows-sys",
173-]
174-
175-[[package]]
176-name = "error-chain"
177-version = "0.12.4"
178-source = "registry+https://github.com/rust-lang/crates.io-index"
179-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
180-dependencies = [
181- "version_check",
182+ "windows-sys 0.52.0",
183 ]
184
185 [[package]]
186@@ -497,12 +451,13 @@
187
188 [[package]]
189 name = "fancy-regex"
190-version = "0.12.0"
191+version = "0.13.0"
192 source = "registry+https://github.com/rust-lang/crates.io-index"
193-checksum = "7493d4c459da9f84325ad297371a6b2b8a162800873a22e3b6b6512e61d18c05"
194+checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
195 dependencies = [
196 "bit-set",
197- "regex",
198+ "regex-automata",
199+ "regex-syntax",
200 ]
201
202 [[package]]
203@@ -523,9 +478,9 @@
204
205 [[package]]
206 name = "form_urlencoded"
207-version = "1.2.0"
208+version = "1.2.1"
209 source = "registry+https://github.com/rust-lang/crates.io-index"
210-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
211+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
212 dependencies = [
213 "percent-encoding",
214 ]
215@@ -542,9 +497,9 @@
216
217 [[package]]
218 name = "getrandom"
219-version = "0.2.11"
220+version = "0.2.12"
221 source = "registry+https://github.com/rust-lang/crates.io-index"
222-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
223+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
224 dependencies = [
225 "cfg-if",
226 "libc",
227@@ -573,9 +528,9 @@
228
229 [[package]]
230 name = "gimli"
231-version = "0.28.0"
232+version = "0.28.1"
233 source = "registry+https://github.com/rust-lang/crates.io-index"
234-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
235+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
236
237 [[package]]
238 name = "git-py"
239@@ -586,12 +541,6 @@
240 ]
241
242 [[package]]
243-name = "glob"
244-version = "0.3.1"
245-source = "registry+https://github.com/rust-lang/crates.io-index"
246-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
247-
248-[[package]]
249 name = "graph-py"
250 version = "3.4.0"
251 dependencies = [
252@@ -601,19 +550,25 @@
253
254 [[package]]
255 name = "hashbrown"
256-version = "0.14.2"
257+version = "0.14.3"
258 source = "registry+https://github.com/rust-lang/crates.io-index"
259-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
260+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
261 dependencies = [
262 "ahash",
263 "allocator-api2",
264 ]
265
266 [[package]]
267+name = "heck"
268+version = "0.4.1"
269+source = "registry+https://github.com/rust-lang/crates.io-index"
270+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
271+
272+[[package]]
273 name = "hermit-abi"
274-version = "0.3.3"
275+version = "0.3.4"
276 source = "registry+https://github.com/rust-lang/crates.io-index"
277-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
278+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
279
280 [[package]]
281 name = "hostname"
282@@ -628,9 +583,9 @@
283
284 [[package]]
285 name = "iana-time-zone"
286-version = "0.1.58"
287+version = "0.1.59"
288 source = "registry+https://github.com/rust-lang/crates.io-index"
289-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
290+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
291 dependencies = [
292 "android_system_properties",
293 "core-foundation-sys",
294@@ -651,9 +606,9 @@
295
296 [[package]]
297 name = "idna"
298-version = "0.4.0"
299+version = "0.5.0"
300 source = "registry+https://github.com/rust-lang/crates.io-index"
301-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
302+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
303 dependencies = [
304 "unicode-bidi",
305 "unicode-normalization",
306@@ -671,27 +626,27 @@
307
308 [[package]]
309 name = "indoc"
310-version = "1.0.9"
311+version = "2.0.4"
312 source = "registry+https://github.com/rust-lang/crates.io-index"
313-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
314+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
315
316 [[package]]
317 name = "inventory"
318-version = "0.3.13"
319+version = "0.3.15"
320 source = "registry+https://github.com/rust-lang/crates.io-index"
321-checksum = "0508c56cfe9bfd5dfeb0c22ab9a6abfda2f27bdca422132e494266351ed8d83c"
322+checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
323
324 [[package]]
325 name = "itoa"
326-version = "1.0.9"
327+version = "1.0.10"
328 source = "registry+https://github.com/rust-lang/crates.io-index"
329-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
330+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
331
332 [[package]]
333 name = "js-sys"
334-version = "0.3.65"
335+version = "0.3.67"
336 source = "registry+https://github.com/rust-lang/crates.io-index"
337-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
338+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
339 dependencies = [
340 "wasm-bindgen",
341 ]
342@@ -716,7 +671,7 @@
343 "proc-macro2",
344 "quote",
345 "regex",
346- "syn 2.0.39",
347+ "syn 2.0.48",
348 ]
349
350 [[package]]
351@@ -727,9 +682,9 @@
352
353 [[package]]
354 name = "libc"
355-version = "0.2.150"
356+version = "0.2.152"
357 source = "registry+https://github.com/rust-lang/crates.io-index"
358-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
359+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
360
361 [[package]]
362 name = "libredox"
363@@ -737,7 +692,7 @@
364 source = "registry+https://github.com/rust-lang/crates.io-index"
365 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
366 dependencies = [
367- "bitflags 2.4.1",
368+ "bitflags 2.4.2",
369 "libc",
370 "redox_syscall",
371 ]
372@@ -748,16 +703,16 @@
373 source = "registry+https://github.com/rust-lang/crates.io-index"
374 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
375 dependencies = [
376- "bitflags 2.4.1",
377+ "bitflags 2.4.2",
378 "libc",
379 "redox_syscall",
380 ]
381
382 [[package]]
383 name = "linux-raw-sys"
384-version = "0.4.11"
385+version = "0.4.13"
386 source = "registry+https://github.com/rust-lang/crates.io-index"
387-checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
388+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
389
390 [[package]]
391 name = "locale_config"
392@@ -790,9 +745,9 @@
393
394 [[package]]
395 name = "lru"
396-version = "0.12.0"
397+version = "0.12.1"
398 source = "registry+https://github.com/rust-lang/crates.io-index"
399-checksum = "1efa59af2ddfad1854ae27d75009d538d0998b4b2fd47083e743ac1a10e46c60"
400+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
401 dependencies = [
402 "hashbrown",
403 ]
404@@ -831,9 +786,9 @@
405
406 [[package]]
407 name = "memchr"
408-version = "2.6.4"
409+version = "2.7.1"
410 source = "registry+https://github.com/rust-lang/crates.io-index"
411-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
412+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
413
414 [[package]]
415 name = "memoffset"
416@@ -859,7 +814,7 @@
417 source = "registry+https://github.com/rust-lang/crates.io-index"
418 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
419 dependencies = [
420- "bitflags 2.4.1",
421+ "bitflags 2.4.2",
422 "cfg-if",
423 "libc",
424 ]
425@@ -920,18 +875,18 @@
426
427 [[package]]
428 name = "object"
429-version = "0.32.1"
430+version = "0.32.2"
431 source = "registry+https://github.com/rust-lang/crates.io-index"
432-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
433+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
434 dependencies = [
435 "memchr",
436 ]
437
438 [[package]]
439 name = "once_cell"
440-version = "1.18.0"
441+version = "1.19.0"
442 source = "registry+https://github.com/rust-lang/crates.io-index"
443-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
444+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
445
446 [[package]]
447 name = "option-ext"
448@@ -947,7 +902,7 @@
449 "memchr",
450 "nix",
451 "pyo3",
452- "pyo3-file",
453+ "pyo3-filelike",
454 "termion",
455 ]
456
457@@ -971,7 +926,7 @@
458 "libc",
459 "redox_syscall",
460 "smallvec",
461- "windows-targets",
462+ "windows-targets 0.48.5",
463 ]
464
465 [[package]]
466@@ -980,7 +935,7 @@
467 dependencies = [
468 "breezy-patch",
469 "pyo3",
470- "pyo3-file",
471+ "pyo3-filelike",
472 ]
473
474 [[package]]
475@@ -991,15 +946,15 @@
476
477 [[package]]
478 name = "percent-encoding"
479-version = "2.3.0"
480+version = "2.3.1"
481 source = "registry+https://github.com/rust-lang/crates.io-index"
482-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
483+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
484
485 [[package]]
486 name = "pkg-config"
487-version = "0.3.27"
488+version = "0.3.29"
489 source = "registry+https://github.com/rust-lang/crates.io-index"
490-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
491+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
492
493 [[package]]
494 name = "ppv-lite86"
495@@ -1009,29 +964,18 @@
496
497 [[package]]
498 name = "proc-macro2"
499-version = "1.0.69"
500+version = "1.0.78"
501 source = "registry+https://github.com/rust-lang/crates.io-index"
502-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
503+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
504 dependencies = [
505 "unicode-ident",
506 ]
507
508 [[package]]
509-name = "pulldown-cmark"
510-version = "0.9.3"
511-source = "registry+https://github.com/rust-lang/crates.io-index"
512-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
513-dependencies = [
514- "bitflags 1.3.2",
515- "memchr",
516- "unicase",
517-]
518-
519-[[package]]
520 name = "pyo3"
521-version = "0.19.2"
522+version = "0.20.2"
523 source = "registry+https://github.com/rust-lang/crates.io-index"
524-checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
525+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
526 dependencies = [
527 "cfg-if",
528 "chrono",
529@@ -1047,9 +991,9 @@
530
531 [[package]]
532 name = "pyo3-build-config"
533-version = "0.19.2"
534+version = "0.20.2"
535 source = "registry+https://github.com/rust-lang/crates.io-index"
536-checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
537+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
538 dependencies = [
539 "once_cell",
540 "target-lexicon",
541@@ -1057,52 +1001,52 @@
542
543 [[package]]
544 name = "pyo3-ffi"
545-version = "0.19.2"
546+version = "0.20.2"
547 source = "registry+https://github.com/rust-lang/crates.io-index"
548-checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
549+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
550 dependencies = [
551 "libc",
552 "pyo3-build-config",
553 ]
554
555 [[package]]
556-name = "pyo3-file"
557-version = "0.7.0"
558+name = "pyo3-filelike"
559+version = "0.2.0"
560 source = "registry+https://github.com/rust-lang/crates.io-index"
561-checksum = "9c655228ceebe0180211c009dade97a1d5f3e86704caec35ddeb2c7661543654"
562+checksum = "cd3b0fe5c172055cfa8daddd9fab48dc7a4ebb532bd5dd8a87a40fac0a570fa3"
563 dependencies = [
564 "pyo3",
565- "skeptic",
566 ]
567
568 [[package]]
569 name = "pyo3-macros"
570-version = "0.19.2"
571+version = "0.20.2"
572 source = "registry+https://github.com/rust-lang/crates.io-index"
573-checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
574+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
575 dependencies = [
576 "proc-macro2",
577 "pyo3-macros-backend",
578 "quote",
579- "syn 1.0.109",
580+ "syn 2.0.48",
581 ]
582
583 [[package]]
584 name = "pyo3-macros-backend"
585-version = "0.19.2"
586+version = "0.20.2"
587 source = "registry+https://github.com/rust-lang/crates.io-index"
588-checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
589+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
590 dependencies = [
591+ "heck",
592 "proc-macro2",
593 "quote",
594- "syn 1.0.109",
595+ "syn 2.0.48",
596 ]
597
598 [[package]]
599 name = "quote"
600-version = "1.0.33"
601+version = "1.0.35"
602 source = "registry+https://github.com/rust-lang/crates.io-index"
603-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
604+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
605 dependencies = [
606 "proc-macro2",
607 ]
608@@ -1165,9 +1109,9 @@
609
610 [[package]]
611 name = "regex"
612-version = "1.10.2"
613+version = "1.10.3"
614 source = "registry+https://github.com/rust-lang/crates.io-index"
615-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
616+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
617 dependencies = [
618 "aho-corasick",
619 "memchr",
620@@ -1177,9 +1121,9 @@
621
622 [[package]]
623 name = "regex-automata"
624-version = "0.4.3"
625+version = "0.4.5"
626 source = "registry+https://github.com/rust-lang/crates.io-index"
627-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
628+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
629 dependencies = [
630 "aho-corasick",
631 "memchr",
632@@ -1200,22 +1144,22 @@
633
634 [[package]]
635 name = "rustix"
636-version = "0.38.24"
637+version = "0.38.30"
638 source = "registry+https://github.com/rust-lang/crates.io-index"
639-checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234"
640+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
641 dependencies = [
642- "bitflags 2.4.1",
643+ "bitflags 2.4.2",
644 "errno",
645 "libc",
646 "linux-raw-sys",
647- "windows-sys",
648+ "windows-sys 0.52.0",
649 ]
650
651 [[package]]
652 name = "ryu"
653-version = "1.0.15"
654+version = "1.0.16"
655 source = "registry+https://github.com/rust-lang/crates.io-index"
656-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
657+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
658
659 [[package]]
660 name = "same-file"
661@@ -1233,50 +1177,30 @@
662 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
663
664 [[package]]
665-name = "semver"
666-version = "1.0.20"
667-source = "registry+https://github.com/rust-lang/crates.io-index"
668-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
669-dependencies = [
670- "serde",
671-]
672-
673-[[package]]
674 name = "serde"
675-version = "1.0.192"
676+version = "1.0.196"
677 source = "registry+https://github.com/rust-lang/crates.io-index"
678-checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
679+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
680 dependencies = [
681 "serde_derive",
682 ]
683
684 [[package]]
685 name = "serde_derive"
686-version = "1.0.192"
687+version = "1.0.196"
688 source = "registry+https://github.com/rust-lang/crates.io-index"
689-checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
690+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
691 dependencies = [
692 "proc-macro2",
693 "quote",
694- "syn 2.0.39",
695-]
696-
697-[[package]]
698-name = "serde_json"
699-version = "1.0.108"
700-source = "registry+https://github.com/rust-lang/crates.io-index"
701-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
702-dependencies = [
703- "itoa",
704- "ryu",
705- "serde",
706+ "syn 2.0.48",
707 ]
708
709 [[package]]
710 name = "serde_yaml"
711-version = "0.9.27"
712+version = "0.9.30"
713 source = "registry+https://github.com/rust-lang/crates.io-index"
714-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
715+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
716 dependencies = [
717 "indexmap",
718 "itoa",
719@@ -1306,25 +1230,10 @@
720 ]
721
722 [[package]]
723-name = "skeptic"
724-version = "0.13.7"
725-source = "registry+https://github.com/rust-lang/crates.io-index"
726-checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
727-dependencies = [
728- "bytecount",
729- "cargo_metadata",
730- "error-chain",
731- "glob",
732- "pulldown-cmark",
733- "tempfile",
734- "walkdir",
735-]
736-
737-[[package]]
738 name = "smallvec"
739-version = "1.11.2"
740+version = "1.13.1"
741 source = "registry+https://github.com/rust-lang/crates.io-index"
742-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
743+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
744
745 [[package]]
746 name = "smawk"
747@@ -1345,9 +1254,9 @@
748
749 [[package]]
750 name = "syn"
751-version = "2.0.39"
752+version = "2.0.48"
753 source = "registry+https://github.com/rust-lang/crates.io-index"
754-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
755+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
756 dependencies = [
757 "proc-macro2",
758 "quote",
759@@ -1368,34 +1277,34 @@
760
761 [[package]]
762 name = "target-lexicon"
763-version = "0.12.12"
764+version = "0.12.13"
765 source = "registry+https://github.com/rust-lang/crates.io-index"
766-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
767+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
768
769 [[package]]
770 name = "temp-dir"
771-version = "0.1.11"
772+version = "0.1.12"
773 source = "registry+https://github.com/rust-lang/crates.io-index"
774-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
775+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
776
777 [[package]]
778 name = "tempfile"
779-version = "3.8.1"
780+version = "3.9.0"
781 source = "registry+https://github.com/rust-lang/crates.io-index"
782-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
783+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
784 dependencies = [
785 "cfg-if",
786 "fastrand",
787 "redox_syscall",
788 "rustix",
789- "windows-sys",
790+ "windows-sys 0.52.0",
791 ]
792
793 [[package]]
794 name = "termion"
795-version = "2.0.3"
796+version = "3.0.0"
797 source = "registry+https://github.com/rust-lang/crates.io-index"
798-checksum = "c4648c7def6f2043b2568617b9f9b75eae88ca185dbc1f1fda30e95a85d49d7d"
799+checksum = "417813675a504dfbbf21bfde32c03e5bf9f2413999962b479023c02848c1c7a5"
800 dependencies = [
801 "libc",
802 "libredox 0.0.2",
803@@ -1425,22 +1334,22 @@
804
805 [[package]]
806 name = "thiserror"
807-version = "1.0.50"
808+version = "1.0.56"
809 source = "registry+https://github.com/rust-lang/crates.io-index"
810-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
811+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
812 dependencies = [
813 "thiserror-impl",
814 ]
815
816 [[package]]
817 name = "thiserror-impl"
818-version = "1.0.50"
819+version = "1.0.56"
820 source = "registry+https://github.com/rust-lang/crates.io-index"
821-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
822+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
823 dependencies = [
824 "proc-macro2",
825 "quote",
826- "syn 2.0.39",
827+ "syn 2.0.48",
828 ]
829
830 [[package]]
831@@ -1466,7 +1375,7 @@
832 "log",
833 "nix",
834 "pyo3",
835- "pyo3-file",
836+ "pyo3-filelike",
837 "sftp",
838 "url",
839 ]
840@@ -1478,19 +1387,10 @@
841 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
842
843 [[package]]
844-name = "unicase"
845-version = "2.7.0"
846-source = "registry+https://github.com/rust-lang/crates.io-index"
847-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
848-dependencies = [
849- "version_check",
850-]
851-
852-[[package]]
853 name = "unicode-bidi"
854-version = "0.3.13"
855+version = "0.3.15"
856 source = "registry+https://github.com/rust-lang/crates.io-index"
857-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
858+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
859
860 [[package]]
861 name = "unicode-ident"
862@@ -1527,21 +1427,21 @@
863
864 [[package]]
865 name = "unindent"
866-version = "0.1.11"
867+version = "0.2.3"
868 source = "registry+https://github.com/rust-lang/crates.io-index"
869-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
870+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
871
872 [[package]]
873 name = "unsafe-libyaml"
874-version = "0.2.9"
875+version = "0.2.10"
876 source = "registry+https://github.com/rust-lang/crates.io-index"
877-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
878+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
879
880 [[package]]
881 name = "url"
882-version = "2.4.1"
883+version = "2.5.0"
884 source = "registry+https://github.com/rust-lang/crates.io-index"
885-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
886+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
887 dependencies = [
888 "form_urlencoded",
889 "idna",
890@@ -1580,9 +1480,9 @@
891
892 [[package]]
893 name = "wasm-bindgen"
894-version = "0.2.88"
895+version = "0.2.90"
896 source = "registry+https://github.com/rust-lang/crates.io-index"
897-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
898+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
899 dependencies = [
900 "cfg-if",
901 "wasm-bindgen-macro",
902@@ -1590,24 +1490,24 @@
903
904 [[package]]
905 name = "wasm-bindgen-backend"
906-version = "0.2.88"
907+version = "0.2.90"
908 source = "registry+https://github.com/rust-lang/crates.io-index"
909-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
910+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
911 dependencies = [
912 "bumpalo",
913 "log",
914 "once_cell",
915 "proc-macro2",
916 "quote",
917- "syn 2.0.39",
918+ "syn 2.0.48",
919 "wasm-bindgen-shared",
920 ]
921
922 [[package]]
923 name = "wasm-bindgen-macro"
924-version = "0.2.88"
925+version = "0.2.90"
926 source = "registry+https://github.com/rust-lang/crates.io-index"
927-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
928+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
929 dependencies = [
930 "quote",
931 "wasm-bindgen-macro-support",
932@@ -1615,22 +1515,22 @@
933
934 [[package]]
935 name = "wasm-bindgen-macro-support"
936-version = "0.2.88"
937+version = "0.2.90"
938 source = "registry+https://github.com/rust-lang/crates.io-index"
939-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
940+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
941 dependencies = [
942 "proc-macro2",
943 "quote",
944- "syn 2.0.39",
945+ "syn 2.0.48",
946 "wasm-bindgen-backend",
947 "wasm-bindgen-shared",
948 ]
949
950 [[package]]
951 name = "wasm-bindgen-shared"
952-version = "0.2.88"
953+version = "0.2.90"
954 source = "registry+https://github.com/rust-lang/crates.io-index"
955-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
956+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
957
958 [[package]]
959 name = "whoami"
960@@ -1671,11 +1571,11 @@
961
962 [[package]]
963 name = "windows-core"
964-version = "0.51.1"
965+version = "0.52.0"
966 source = "registry+https://github.com/rust-lang/crates.io-index"
967-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
968+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
969 dependencies = [
970- "windows-targets",
971+ "windows-targets 0.52.0",
972 ]
973
974 [[package]]
975@@ -1684,7 +1584,16 @@
976 source = "registry+https://github.com/rust-lang/crates.io-index"
977 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
978 dependencies = [
979- "windows-targets",
980+ "windows-targets 0.48.5",
981+]
982+
983+[[package]]
984+name = "windows-sys"
985+version = "0.52.0"
986+source = "registry+https://github.com/rust-lang/crates.io-index"
987+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
988+dependencies = [
989+ "windows-targets 0.52.0",
990 ]
991
992 [[package]]
993@@ -1693,13 +1602,28 @@
994 source = "registry+https://github.com/rust-lang/crates.io-index"
995 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
996 dependencies = [
997- "windows_aarch64_gnullvm",
998- "windows_aarch64_msvc",
999- "windows_i686_gnu",
1000- "windows_i686_msvc",
1001- "windows_x86_64_gnu",
1002- "windows_x86_64_gnullvm",
1003- "windows_x86_64_msvc",
1004+ "windows_aarch64_gnullvm 0.48.5",
1005+ "windows_aarch64_msvc 0.48.5",
1006+ "windows_i686_gnu 0.48.5",
1007+ "windows_i686_msvc 0.48.5",
1008+ "windows_x86_64_gnu 0.48.5",
1009+ "windows_x86_64_gnullvm 0.48.5",
1010+ "windows_x86_64_msvc 0.48.5",
1011+]
1012+
1013+[[package]]
1014+name = "windows-targets"
1015+version = "0.52.0"
1016+source = "registry+https://github.com/rust-lang/crates.io-index"
1017+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
1018+dependencies = [
1019+ "windows_aarch64_gnullvm 0.52.0",
1020+ "windows_aarch64_msvc 0.52.0",
1021+ "windows_i686_gnu 0.52.0",
1022+ "windows_i686_msvc 0.52.0",
1023+ "windows_x86_64_gnu 0.52.0",
1024+ "windows_x86_64_gnullvm 0.52.0",
1025+ "windows_x86_64_msvc 0.52.0",
1026 ]
1027
1028 [[package]]
1029@@ -1709,42 +1633,84 @@
1030 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
1031
1032 [[package]]
1033+name = "windows_aarch64_gnullvm"
1034+version = "0.52.0"
1035+source = "registry+https://github.com/rust-lang/crates.io-index"
1036+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
1037+
1038+[[package]]
1039 name = "windows_aarch64_msvc"
1040 version = "0.48.5"
1041 source = "registry+https://github.com/rust-lang/crates.io-index"
1042 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
1043
1044 [[package]]
1045+name = "windows_aarch64_msvc"
1046+version = "0.52.0"
1047+source = "registry+https://github.com/rust-lang/crates.io-index"
1048+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
1049+
1050+[[package]]
1051 name = "windows_i686_gnu"
1052 version = "0.48.5"
1053 source = "registry+https://github.com/rust-lang/crates.io-index"
1054 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
1055
1056 [[package]]
1057+name = "windows_i686_gnu"
1058+version = "0.52.0"
1059+source = "registry+https://github.com/rust-lang/crates.io-index"
1060+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
1061+
1062+[[package]]
1063 name = "windows_i686_msvc"
1064 version = "0.48.5"
1065 source = "registry+https://github.com/rust-lang/crates.io-index"
1066 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
1067
1068 [[package]]
1069+name = "windows_i686_msvc"
1070+version = "0.52.0"
1071+source = "registry+https://github.com/rust-lang/crates.io-index"
1072+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
1073+
1074+[[package]]
1075 name = "windows_x86_64_gnu"
1076 version = "0.48.5"
1077 source = "registry+https://github.com/rust-lang/crates.io-index"
1078 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
1079
1080 [[package]]
1081+name = "windows_x86_64_gnu"
1082+version = "0.52.0"
1083+source = "registry+https://github.com/rust-lang/crates.io-index"
1084+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
1085+
1086+[[package]]
1087 name = "windows_x86_64_gnullvm"
1088 version = "0.48.5"
1089 source = "registry+https://github.com/rust-lang/crates.io-index"
1090 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
1091
1092 [[package]]
1093+name = "windows_x86_64_gnullvm"
1094+version = "0.52.0"
1095+source = "registry+https://github.com/rust-lang/crates.io-index"
1096+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
1097+
1098+[[package]]
1099 name = "windows_x86_64_msvc"
1100 version = "0.48.5"
1101 source = "registry+https://github.com/rust-lang/crates.io-index"
1102 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
1103
1104 [[package]]
1105+name = "windows_x86_64_msvc"
1106+version = "0.52.0"
1107+source = "registry+https://github.com/rust-lang/crates.io-index"
1108+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
1109+
1110+[[package]]
1111 name = "xml-rs"
1112 version = "0.8.19"
1113 source = "registry+https://github.com/rust-lang/crates.io-index"
1114@@ -1770,22 +1736,22 @@
1115
1116 [[package]]
1117 name = "zerocopy"
1118-version = "0.7.26"
1119+version = "0.7.32"
1120 source = "registry+https://github.com/rust-lang/crates.io-index"
1121-checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
1122+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
1123 dependencies = [
1124 "zerocopy-derive",
1125 ]
1126
1127 [[package]]
1128 name = "zerocopy-derive"
1129-version = "0.7.26"
1130+version = "0.7.32"
1131 source = "registry+https://github.com/rust-lang/crates.io-index"
1132-checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
1133+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
1134 dependencies = [
1135 "proc-macro2",
1136 "quote",
1137- "syn 2.0.39",
1138+ "syn 2.0.48",
1139 ]
1140
1141 [[package]]
1142
1143=== modified file 'Cargo.toml'
1144--- Cargo.toml 2023-11-16 01:10:40 +0000
1145+++ Cargo.toml 2024-01-27 14:21:36 +0000
1146@@ -55,8 +55,8 @@
1147
1148 [workspace.dependencies]
1149 nix = ">=0.26"
1150-pyo3 = ">=0.19"
1151-pyo3-file = "0.7.0"
1152+pyo3 = ">=0.20"
1153+pyo3-filelike = "0.2.0"
1154 chrono = { version = "0.4", default-features = false, features = ["std", "clock"] }
1155 url = "2"
1156 log = "0.4"
1157
1158=== modified file 'breezy/bzr/groupcompress_repo.py'
1159--- breezy/bzr/groupcompress_repo.py 2024-01-24 23:29:51 +0000
1160+++ breezy/bzr/groupcompress_repo.py 2024-01-27 14:21:36 +0000
1161@@ -21,8 +21,9 @@
1162
1163 from .. import _bzr_rs, controldir, debug, errors, osutils, trace, ui
1164 from .. import revision as _mod_revision
1165-from ..bzr import chk_map, chk_serializer, inventory, pack, versionedfile
1166+from ..bzr import chk_map, chk_serializer, inventory, versionedfile
1167 from ..bzr import index as _mod_index
1168+from ..bzr import pack as _mod_pack
1169 from ..bzr.btree_index import BTreeBuilder, BTreeGraphIndex
1170 from ..bzr.groupcompress import GroupCompressVersionedFiles, _GCGraphIndex
1171 from ..bzr.vf_repository import StreamSource
1172@@ -147,7 +148,7 @@
1173 # expose this on self, for the occasion when clients want to add data.
1174 self._write_data = _write_data
1175 # a pack writer object to serialise pack records.
1176- self._writer = pack.ContainerWriter(self._write_data)
1177+ self._writer = _mod_pack.ContainerWriter(self._write_data)
1178 self._writer.begin()
1179 # what state is the pack in? (open, finished, aborted)
1180 self._state = "open"
1181
1182=== modified file 'breezy/plugins/launchpad/test_uris.py'
1183--- breezy/plugins/launchpad/test_uris.py 2023-10-02 09:49:13 +0000
1184+++ breezy/plugins/launchpad/test_uris.py 2024-01-27 14:21:36 +0000
1185@@ -20,8 +20,12 @@
1186
1187
1188 class TestWebRootForServiceRoot(TestCase):
1189-
1190 def test_simple(self):
1191- self.assertEqual('https://launchpad.net', uris.web_root_for_service_root('https://api.launchpad.net/'))
1192- self.assertEqual('https://beta.launchpad.net', uris.web_root_for_service_root('https://api.beta.launchpad.net/'))
1193-
1194+ self.assertEqual(
1195+ "https://launchpad.net",
1196+ uris.web_root_for_service_root("https://api.launchpad.net/"),
1197+ )
1198+ self.assertEqual(
1199+ "https://beta.launchpad.net",
1200+ uris.web_root_for_service_root("https://api.beta.launchpad.net/"),
1201+ )
1202
1203=== modified file 'breezy/tests/test_osutils.py'
1204--- breezy/tests/test_osutils.py 2023-11-16 15:15:02 +0000
1205+++ breezy/tests/test_osutils.py 2024-01-27 14:21:36 +0000
1206@@ -1383,7 +1383,7 @@
1207 def test_sha_empty(self):
1208 self.build_tree_contents([("foo", b"")])
1209 expected_sha = osutils.sha_string(b"")
1210- f = open("foo")
1211+ f = open("foo", "rb")
1212 self.addCleanup(f.close)
1213 size, sha = osutils.size_sha_file(f)
1214 self.assertEqual(0, size)
1215
1216=== modified file 'crates/bazaar-py/Cargo.toml'
1217--- crates/bazaar-py/Cargo.toml 2023-11-08 15:44:26 +0000
1218+++ crates/bazaar-py/Cargo.toml 2024-01-27 14:21:36 +0000
1219@@ -9,6 +9,6 @@
1220 [dependencies]
1221 bazaar = { path = "../bazaar", features=["pyo3"] }
1222 pyo3 = { workspace = true, features = ["extension-module", "chrono"]}
1223-pyo3-file = { workspace = true }
1224+pyo3-filelike = { workspace = true }
1225 chrono = { workspace = true }
1226 breezy-osutils = { path = "../osutils", features = ["pyo3"] }
1227
1228=== modified file 'crates/bazaar-py/src/dirstate.rs'
1229--- crates/bazaar-py/src/dirstate.rs 2023-06-27 09:33:46 +0000
1230+++ crates/bazaar-py/src/dirstate.rs 2024-01-27 14:21:36 +0000
1231@@ -166,7 +166,7 @@
1232 let hi = hi.unwrap_or(dirblocks.len());
1233 let cache = cache.unwrap_or_else(|| PyDict::new(py));
1234
1235- let dirname_split = match cache.get_item(&dirname) {
1236+ let dirname_split = match cache.get_item(&dirname)? {
1237 Some(item) => item.extract::<Vec<PathBuf>>()?,
1238 None => {
1239 let split = split_object(py, dirname.to_object(py))?;
1240@@ -183,7 +183,7 @@
1241 let dirblock = dirblocks.get_item(mid)?.downcast::<PyTuple>()?;
1242 let cur = dirblock.get_item(0)?;
1243
1244- let cur_split = match cache.get_item(cur) {
1245+ let cur_split = match cache.get_item(cur)? {
1246 Some(item) => item.extract::<Vec<PathBuf>>()?,
1247 None => {
1248 let split = split_object(py, cur.into_py(py))?;
1249
1250=== modified file 'crates/bazaar-py/src/inventory.rs'
1251--- crates/bazaar-py/src/inventory.rs 2023-11-08 17:49:57 +0000
1252+++ crates/bazaar-py/src/inventory.rs 2024-01-27 14:21:36 +0000
1253@@ -1700,7 +1700,7 @@
1254 Ok((parent, version, versioned_root, tree_references, result))
1255 }
1256
1257-#[pyfunction]
1258+#[pyfunction(signature = (file_id, name, parent_id, revision, lines))]
1259 fn parse_inventory_entry(
1260 file_id: FileId,
1261 name: String,
1262
1263=== modified file 'crates/bazaar-py/src/lib.rs'
1264--- crates/bazaar-py/src/lib.rs 2023-11-16 22:47:16 +0000
1265+++ crates/bazaar-py/src/lib.rs 2024-01-27 14:21:36 +0000
1266@@ -5,7 +5,7 @@
1267 use pyo3::import_exception;
1268 use pyo3::prelude::*;
1269 use pyo3::types::{PyBytes, PyString};
1270-use pyo3_file::PyFileLikeObject;
1271+use pyo3_filelike::PyBinaryFile;
1272 use std::collections::HashMap;
1273
1274 mod chk_map;
1275@@ -155,6 +155,7 @@
1276 #[pymethods]
1277 impl Revision {
1278 #[new]
1279+ #[pyo3(signature = (revision_id, parent_ids, committer, message, properties, inventory_sha1, timestamp, timezone))]
1280 fn new(
1281 py: Python,
1282 revision_id: RevisionId,
1283@@ -364,7 +365,7 @@
1284
1285 fn read_revision(&self, py: Python, file: PyObject) -> PyResult<Revision> {
1286 py.allow_threads(|| {
1287- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1288+ let mut file = PyBinaryFile::from(file);
1289 Ok(Revision(
1290 self.0
1291 .read_revision(&mut file)
1292
1293=== modified file 'crates/bazaar-py/src/rio.rs'
1294--- crates/bazaar-py/src/rio.rs 2023-06-07 20:20:13 +0000
1295+++ crates/bazaar-py/src/rio.rs 2024-01-27 14:21:36 +0000
1296@@ -9,7 +9,7 @@
1297
1298 use std::io::BufReader;
1299
1300-use pyo3_file::PyFileLikeObject;
1301+use pyo3_filelike::PyBinaryFile;
1302
1303 #[pyfunction]
1304 fn valid_tag(tag: &str) -> bool {
1305@@ -25,7 +25,7 @@
1306 #[pymethods]
1307 impl Stanza {
1308 #[new]
1309- #[args(kwargs = "**")]
1310+ #[pyo3(signature = (**kwargs))]
1311 fn new(kwargs: Option<&PyDict>) -> PyResult<Self> {
1312 let mut obj = Stanza {
1313 stanza: bazaar::rio::Stanza::new(),
1314@@ -162,7 +162,7 @@
1315 }
1316 }
1317 }
1318- Ok(PyIterator::from_object(py, ret)?.into())
1319+ Ok(PyIterator::from_object(ret)?.into())
1320 }
1321
1322 fn as_dict(&self, py: Python) -> PyResult<Py<PyDict>> {
1323@@ -194,7 +194,7 @@
1324 }
1325
1326 fn write(&self, file: PyObject) -> PyResult<()> {
1327- let mut writer = PyFileLikeObject::with_requirements(file, false, true, false)?;
1328+ let mut writer = PyBinaryFile::from(file);
1329 self.stanza.write(&mut writer)?;
1330 Ok(())
1331 }
1332@@ -202,14 +202,14 @@
1333
1334 #[pyclass]
1335 struct RioWriter {
1336- writer: bazaar::rio::RioWriter<PyFileLikeObject>,
1337+ writer: bazaar::rio::RioWriter<PyBinaryFile>,
1338 }
1339
1340 #[pymethods]
1341 impl RioWriter {
1342 #[new]
1343 fn new(file: PyObject) -> PyResult<RioWriter> {
1344- let fw = PyFileLikeObject::with_requirements(file, false, true, false)?;
1345+ let fw = PyBinaryFile::from(file);
1346 let writer = bazaar::rio::RioWriter::new(fw);
1347 Ok(RioWriter { writer })
1348 }
1349@@ -222,7 +222,7 @@
1350
1351 #[pyfunction]
1352 fn read_stanza_file(file: PyObject) -> PyResult<Option<Stanza>> {
1353- let reader = PyFileLikeObject::with_requirements(file, true, false, false)?;
1354+ let reader = PyBinaryFile::from(file);
1355
1356 let mut reader = BufReader::new(reader);
1357
1358@@ -283,7 +283,7 @@
1359 #[pyfunction]
1360 fn read_stanzas(file: PyObject) -> PyResult<Py<PyList>> {
1361 Python::with_gil(|py| {
1362- let reader = PyFileLikeObject::new(file)?;
1363+ let reader = PyBinaryFile::from(file);
1364 let ret = PyList::empty(py);
1365
1366 let mut reader = BufReader::new(reader);
1367@@ -303,14 +303,14 @@
1368
1369 #[pyclass]
1370 struct RioReader {
1371- reader: bazaar::rio::RioReader<BufReader<PyFileLikeObject>>,
1372+ reader: bazaar::rio::RioReader<BufReader<PyBinaryFile>>,
1373 }
1374
1375 #[pymethods]
1376 impl RioReader {
1377 #[new]
1378 fn new(file: PyObject) -> PyResult<RioReader> {
1379- let reader = PyFileLikeObject::with_requirements(file, true, false, false)?;
1380+ let reader = PyBinaryFile::from(file);
1381 let reader = BufReader::new(reader);
1382 let reader = bazaar::rio::RioReader::new(reader);
1383
1384@@ -334,7 +334,7 @@
1385 .into_py(py),
1386 )?;
1387 }
1388- Ok(PyIterator::from_object(py, ret)?.into())
1389+ Ok(PyIterator::from_object(ret)?.into())
1390 })
1391 }
1392 }
1393@@ -353,7 +353,7 @@
1394 let line = line.as_slice();
1395 ret.append(PyBytes::new(py, line))?;
1396 }
1397- Ok(PyIterator::from_object(py, ret)?.into())
1398+ Ok(PyIterator::from_object(ret)?.into())
1399 })
1400 }
1401
1402
1403=== modified file 'crates/bazaar-py/src/versionedfile.rs'
1404--- crates/bazaar-py/src/versionedfile.rs 2023-11-25 16:49:52 +0000
1405+++ crates/bazaar-py/src/versionedfile.rs 2024-01-27 14:21:36 +0000
1406@@ -74,6 +74,7 @@
1407 #[pymethods]
1408 impl FulltextContentFactory {
1409 #[new]
1410+ #[pyo3(signature = (key, parents, sha1, text))]
1411 fn new(
1412 key: Key,
1413 parents: Option<Vec<Key>>,
1414@@ -92,6 +93,7 @@
1415 #[pymethods]
1416 impl ChunkedContentFactory {
1417 #[new]
1418+ #[pyo3(signature = (key, parents, sha1, chunks))]
1419 fn new(
1420 key: Key,
1421 parents: Option<Vec<Key>>,
1422
1423=== modified file 'crates/cmd-py/Cargo.toml'
1424--- crates/cmd-py/Cargo.toml 2023-09-28 11:52:47 +0000
1425+++ crates/cmd-py/Cargo.toml 2024-01-27 14:21:36 +0000
1426@@ -8,7 +8,7 @@
1427
1428 [dependencies]
1429 pyo3 = { workspace = true, features = ["extension-module"]}
1430-pyo3-file = { workspace = true }
1431+pyo3-filelike = { workspace = true }
1432 breezy = { path = "../..", features = ["pyo3"] }
1433 gettext-rs = "0.7"
1434 log = { workspace = true, features=["std"]}
1435
1436=== modified file 'crates/cmd-py/src/lib.rs'
1437--- crates/cmd-py/src/lib.rs 2023-11-07 11:08:05 +0000
1438+++ crates/cmd-py/src/lib.rs 2024-01-27 14:21:36 +0000
1439@@ -9,7 +9,7 @@
1440 use pyo3::prelude::*;
1441 use pyo3::pyclass::CompareOp;
1442 use pyo3::types::{PyBytes, PyString, PyTuple, PyType};
1443-use pyo3_file::PyFileLikeObject;
1444+use pyo3_filelike::PyBinaryFile;
1445 use std::io::Write;
1446 use std::path::PathBuf;
1447
1448@@ -241,7 +241,7 @@
1449 impl BreezyTraceHandler {
1450 #[new]
1451 fn new(f: PyObject, short: bool) -> PyResult<Self> {
1452- let f = PyFileLikeObject::with_requirements(f, false, true, false)?;
1453+ let f = PyBinaryFile::from(f);
1454 Ok(Self(Box::new(std::sync::Arc::new(
1455 breezy::trace::BreezyTraceLogger::new(Box::new(f), short),
1456 ))))
1457
1458=== modified file 'crates/graph-py/src/lib.rs'
1459--- crates/graph-py/src/lib.rs 2023-11-25 16:49:52 +0000
1460+++ crates/graph-py/src/lib.rs 2024-01-27 14:21:36 +0000
1461@@ -1,11 +1,11 @@
1462 #![allow(non_snake_case)]
1463
1464-use breezy_graph::{ChildMap, ParentMap, Parents, RevnoVec};
1465-use pyo3::exceptions::PyValueError;
1466+use breezy_graph::{ChildMap, ParentMap, RevnoVec};
1467+
1468+use pyo3::import_exception;
1469 use pyo3::prelude::*;
1470-use pyo3::types::{PyDict, PyList, PySet, PyTuple};
1471+use pyo3::types::{PyDict, PyList, PyTuple};
1472 use pyo3::wrap_pyfunction;
1473-use pyo3::{create_exception, import_exception};
1474 use std::collections::{HashMap, HashSet};
1475 use std::hash::Hash;
1476
1477
1478=== modified file 'crates/osutils-py/Cargo.toml'
1479--- crates/osutils-py/Cargo.toml 2023-09-28 11:52:47 +0000
1480+++ crates/osutils-py/Cargo.toml 2024-01-27 14:21:36 +0000
1481@@ -9,7 +9,7 @@
1482 [dependencies]
1483 pyo3 = { workspace = true, features = ["extension-module", "chrono" ]}
1484 breezy-osutils = { path = "../osutils" }
1485-pyo3-file = { workspace = true }
1486+pyo3-filelike = { workspace = true }
1487 memchr = "2.3.4"
1488 termion = ">=1"
1489
1490
1491=== modified file 'crates/osutils-py/src/lib.rs'
1492--- crates/osutils-py/src/lib.rs 2023-06-24 13:57:53 +0000
1493+++ crates/osutils-py/src/lib.rs 2024-01-27 14:21:36 +0000
1494@@ -7,7 +7,7 @@
1495 use pyo3::types::{PyBytes, PyIterator, PyList, PyTuple};
1496 use pyo3::wrap_pyfunction;
1497 use pyo3::PyErr;
1498-use pyo3_file::PyFileLikeObject;
1499+use pyo3_filelike::PyBinaryFile;
1500 use std::collections::HashSet;
1501 use std::ffi::OsString;
1502 use std::fs::Permissions;
1503@@ -168,7 +168,7 @@
1504 /// The file cursor should be already at the start.
1505 #[pyfunction]
1506 fn sha_file(py: Python, file: PyObject) -> PyResult<PyObject> {
1507- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1508+ let mut file = PyBinaryFile::from(file);
1509 let digest = breezy_osutils::sha::sha_file(&mut file).map_err(PyErr::from)?;
1510 Ok(PyBytes::new(py, digest.as_bytes()).into_py(py))
1511 }
1512@@ -179,7 +179,7 @@
1513 /// the caller is responsible for closing the file afterwards.
1514 #[pyfunction]
1515 fn size_sha_file(py: Python, file: PyObject) -> PyResult<(usize, PyObject)> {
1516- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1517+ let mut file = PyBinaryFile::from(file);
1518 let (size, digest) = breezy_osutils::sha::size_sha_file(&mut file).map_err(PyErr::from)?;
1519 Ok((size, PyBytes::new(py, digest.as_bytes()).into_py(py)))
1520 }
1521@@ -826,8 +826,8 @@
1522
1523 #[pyfunction]
1524 fn pumpfile(from_file: PyObject, to_file: PyObject, read_size: Option<u64>) -> PyResult<u64> {
1525- let mut from_file = PyFileLikeObject::with_requirements(from_file, true, false, false)?;
1526- let mut to_file = PyFileLikeObject::with_requirements(to_file, false, true, false)?;
1527+ let mut from_file = PyBinaryFile::from(from_file);
1528+ let mut to_file = PyBinaryFile::from(to_file);
1529
1530 Ok(breezy_osutils::pumpfile(
1531 &mut from_file,
1532@@ -892,7 +892,7 @@
1533
1534 #[pyfunction]
1535 fn pump_string_file(data: &[u8], file: PyObject, segment_size: Option<usize>) -> PyResult<()> {
1536- let mut file = PyFileLikeObject::with_requirements(file, false, true, false)?;
1537+ let mut file = PyBinaryFile::from(file);
1538 Ok(breezy_osutils::pump_string_file(
1539 data,
1540 &mut file,
1541@@ -1090,7 +1090,7 @@
1542 }
1543 }
1544
1545-#[pyfunction(args = "*")]
1546+#[pyfunction(signature = (*args))]
1547 fn pathjoin(py: Python, args: Vec<PyObject>) -> PyResult<PyObject> {
1548 let return_bytes = args[0].as_ref(py).is_instance_of::<PyBytes>();
1549 let parts = args
1550@@ -1141,8 +1141,8 @@
1551
1552 #[pyfunction]
1553 fn compare_files(a: PyObject, b: PyObject) -> PyResult<bool> {
1554- let a = PyFileLikeObject::with_requirements(a, true, false, false)?;
1555- let b = PyFileLikeObject::with_requirements(b, true, false, false)?;
1556+ let a = PyBinaryFile::from(a);
1557+ let b = PyBinaryFile::from(b);
1558 Ok(breezy_osutils::file::compare_files(a, b)?)
1559 }
1560
1561
1562=== modified file 'crates/patch-py/Cargo.toml'
1563--- crates/patch-py/Cargo.toml 2023-09-28 11:52:47 +0000
1564+++ crates/patch-py/Cargo.toml 2024-01-27 14:21:36 +0000
1565@@ -8,5 +8,5 @@
1566
1567 [dependencies]
1568 pyo3 = { workspace = true, features = ["extension-module", "chrono"]}
1569-pyo3-file = { workspace = true }
1570+pyo3-filelike = { workspace = true }
1571 breezy-patch = { path = "../patch" }
1572
1573=== modified file 'crates/patch-py/src/lib.rs'
1574--- crates/patch-py/src/lib.rs 2023-06-11 15:51:24 +0000
1575+++ crates/patch-py/src/lib.rs 2024-01-27 14:21:36 +0000
1576@@ -4,7 +4,7 @@
1577 use pyo3::prelude::*;
1578 use pyo3::types::{PyBytes, PyIterator, PyList};
1579 use pyo3::wrap_pyfunction;
1580-use pyo3_file::PyFileLikeObject;
1581+use pyo3_filelike::PyBinaryFile;
1582 use std::ffi::OsString;
1583 use std::io::Write;
1584 use std::os::unix::ffi::OsStringExt;
1585@@ -67,9 +67,7 @@
1586 _patch_cmd: Option<&str>,
1587 ) -> PyResult<()> {
1588 let mut out: Box<dyn Write> = if let Some(obj) = out {
1589- Box::new(PyFileLikeObject::with_requirements(
1590- obj, false, true, false,
1591- )?)
1592+ Box::new(PyBinaryFile::from(obj))
1593 } else {
1594 Box::new(std::io::stdout())
1595 };
1596
1597=== modified file 'crates/transport-py/Cargo.toml'
1598--- crates/transport-py/Cargo.toml 2023-09-28 11:52:47 +0000
1599+++ crates/transport-py/Cargo.toml 2024-01-27 14:21:36 +0000
1600@@ -9,7 +9,7 @@
1601 [dependencies]
1602 pyo3 = { workspace = true, features = ["extension-module"]}
1603 breezy-transport = { path = "../transport" }
1604-pyo3-file = { workspace = true }
1605+pyo3-filelike = { workspace = true }
1606 sftp = "0.2.0"
1607 url = { workspace = true }
1608 log = { workspace = true }
1609
1610=== modified file 'crates/transport-py/src/lib.rs'
1611--- crates/transport-py/src/lib.rs 2023-05-19 13:18:53 +0000
1612+++ crates/transport-py/src/lib.rs 2024-01-27 14:21:36 +0000
1613@@ -5,7 +5,7 @@
1614 use pyo3::import_exception;
1615 use pyo3::prelude::*;
1616 use pyo3::types::{PyBytes, PyIterator, PyList, PyType};
1617-use pyo3_file::PyFileLikeObject;
1618+use pyo3_filelike::PyBinaryFile;
1619 use std::collections::HashMap;
1620 use std::fs::Permissions;
1621 use std::io::{BufRead, BufReader, Read, Seek, Write};
1622@@ -432,7 +432,7 @@
1623 mode: Option<PyObject>,
1624 ) -> PyResult<u64> {
1625 let t = &slf.borrow().0;
1626- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1627+ let mut file = PyBinaryFile::from(file);
1628 let ret = py
1629 .allow_threads(|| {
1630 t.put_file(
1631@@ -455,7 +455,7 @@
1632 dir_mode: Option<PyObject>,
1633 ) -> PyResult<()> {
1634 let t = &slf.borrow().0;
1635- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1636+ let mut file = PyBinaryFile::from(file);
1637 py.allow_threads(|| {
1638 t.put_file_non_atomic(
1639 path,
1640@@ -572,7 +572,7 @@
1641 Some(path),
1642 )?;
1643 let list = PyList::new(py, &buffered);
1644- Ok(PyIterator::from_object(py, list)?.into_py(py))
1645+ Ok(PyIterator::from_object(list)?.into_py(py))
1646 }
1647
1648 fn readv(
1649@@ -599,7 +599,7 @@
1650 })
1651 .collect::<PyResult<Vec<(u64, PyObject)>>>()?;
1652 let list = PyList::new(py, &buffered);
1653- Ok(PyIterator::from_object(py, list)?.to_object(py))
1654+ Ok(PyIterator::from_object(list)?.to_object(py))
1655 }
1656
1657 fn listable(&self, py: Python) -> bool {
1658@@ -634,7 +634,7 @@
1659 file: PyObject,
1660 mode: Option<PyObject>,
1661 ) -> PyResult<u64> {
1662- let mut file = PyFileLikeObject::with_requirements(file, true, false, false)?;
1663+ let mut file = PyBinaryFile::from(file);
1664 let mode = mode.map(perms_from_py_object);
1665 py.allow_threads(|| self.0.append_file(path, &mut file, mode))
1666 .map_err(|e| map_transport_err_to_py_err(e, None, Some(path)))
1667@@ -844,7 +844,7 @@
1668 bytes_to_read_before_seek: Option<usize>,
1669 path: Option<&str>,
1670 ) -> PyResult<Vec<(usize, PyObject)>> {
1671- let f = PyFileLikeObject::with_requirements(file, true, false, true)?;
1672+ let f = PyBinaryFile::from(file);
1673 let mut data = py
1674 .allow_threads(|| {
1675 breezy_transport::readv::seek_and_read(
1676
1677=== modified file 'crates/transport/Cargo.toml'
1678--- crates/transport/Cargo.toml 2023-09-28 14:44:58 +0000
1679+++ crates/transport/Cargo.toml 2024-01-27 14:21:36 +0000
1680@@ -16,7 +16,7 @@
1681 url = { workspace = true }
1682 tempfile = "3"
1683 pyo3 = { workspace = true, optional = true }
1684-pyo3-file = { workspace = true, optional = true }
1685+pyo3-filelike = { workspace = true, optional = true }
1686 breezy-urlutils = { path = "../urlutils" }
1687 path-clean = "1"
1688 walkdir = "2.3"
1689@@ -27,7 +27,7 @@
1690
1691 [features]
1692 default = ["pyo3", "sftp"]
1693-pyo3 = ["dep:pyo3", "dep:pyo3-file"]
1694+pyo3 = ["dep:pyo3", "dep:pyo3-filelike"]
1695
1696 [target.'cfg(unix)'.dependencies]
1697 nix = { workspace = true }
1698
1699=== modified file 'crates/transport/src/pyo3.rs'
1700--- crates/transport/src/pyo3.rs 2023-05-13 19:39:33 +0000
1701+++ crates/transport/src/pyo3.rs 2024-01-27 14:21:36 +0000
1702@@ -5,7 +5,7 @@
1703 use pyo3::import_exception;
1704 use pyo3::prelude::*;
1705 use pyo3::types::PyBytes;
1706-use pyo3_file::PyFileLikeObject;
1707+use pyo3_filelike::PyBinaryFile;
1708 use std::collections::HashMap;
1709 use std::fs::Permissions;
1710 use std::io::{Read, Write};
1711@@ -113,7 +113,7 @@
1712 }
1713 }
1714
1715-impl ReadStream for PyFileLikeObject {}
1716+impl ReadStream for PyBinaryFile {}
1717
1718 // Bit of a hack - this reads the entire buffer, and then streams it
1719 fn py_read(r: &mut dyn Read) -> PyResult<PyObject> {
1720@@ -179,8 +179,7 @@
1721 fn get(&self, path: &str) -> Result<Box<dyn ReadStream + Send + Sync>> {
1722 Python::with_gil(|py| {
1723 let obj = self.0.call_method1(py, "get", (path,))?;
1724- Ok(PyFileLikeObject::with_requirements(obj, true, false, true)
1725- .map(|f| Box::new(f) as Box<dyn ReadStream + Send + Sync>)?)
1726+ Ok(Box::new(PyBinaryFile::from(obj)) as Box<dyn ReadStream + Send + Sync>)
1727 })
1728 }
1729
1730
1731=== modified file 'crates/urlutils-py/src/lib.rs'
1732--- crates/urlutils-py/src/lib.rs 2023-04-29 12:23:49 +0000
1733+++ crates/urlutils-py/src/lib.rs 2024-01-27 14:21:36 +0000
1734@@ -72,7 +72,7 @@
1735 }
1736 }
1737
1738-#[pyfunction(args = "*")]
1739+#[pyfunction(signature = (url, *args))]
1740 fn joinpath(url: &str, args: &PyTuple) -> PyResult<String> {
1741 let mut path = Vec::new();
1742 for arg in args.iter() {
1743@@ -87,7 +87,7 @@
1744 breezy_urlutils::joinpath(url, path.as_slice()).map_err(map_urlutils_error_to_pyerr)
1745 }
1746
1747-#[pyfunction(args = "*")]
1748+#[pyfunction(signature = (url, *args))]
1749 fn join(url: &str, args: &PyTuple) -> PyResult<String> {
1750 let mut path = Vec::new();
1751 for arg in args.iter() {
1752@@ -159,7 +159,7 @@
1753 breezy_urlutils::posix::local_path_to_url(path).map_err(|e| e.into())
1754 }
1755
1756-#[pyfunction(args = "*")]
1757+#[pyfunction(signature = (url, *args))]
1758 fn join_segment_parameters_raw(url: &str, args: &PyTuple) -> PyResult<String> {
1759 let mut path = Vec::new();
1760 for arg in args.iter() {

Subscribers

People subscribed via source and target branches