diff --git a/Cargo.lock b/Cargo.lock index ba37483159..c08d9abf95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,22 +78,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -270,9 +270,9 @@ checksum = "dc0b364ead1874514c8c2855ab558056ebfeb775653e7ae45ff72f28f8f3166c" [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "cfg_aliases", ] @@ -314,9 +314,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "capnp" @@ -335,9 +335,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.46" +version = "1.2.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" +checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" dependencies = [ "find-msvc-tools", "jobserver", @@ -409,9 +409,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.52" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa8120877db0e5c011242f96806ce3c94e0737ab8108532a76a3300a01db2ab8" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -429,9 +429,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.52" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02576b399397b659c26064fbc92a75fede9d18ffd5f80ca1cd74ddab167016e1" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -507,9 +507,9 @@ dependencies = [ [[package]] name = "cool_asserts" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee9f254e53f61e2688d3677fa2cbe4e9b950afd56f48819c98817417cf6b28ec" +checksum = "aefc127fad829eb36edd748660d3ee55490889bc54005cef71d2cd6e25ca2bb2" dependencies = [ "indent_write", ] @@ -595,9 +595,9 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -652,6 +652,12 @@ dependencies = [ "rayon", ] +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + [[package]] name = "delegate" version = "0.13.5" @@ -778,9 +784,9 @@ checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "duplicate" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97af9b5f014e228b33e77d75ee0e6e87960124f0f4b16337b586a6bec91867b1" +checksum = "8e92f10a49176cbffacaedabfaa11d51db1ea0f80a83c26e1873b43cd1742c24" [[package]] name = "dyn-clone" @@ -835,9 +841,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" dependencies = [ "serde", "serde_core", @@ -1031,9 +1037,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -1122,9 +1128,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", @@ -1160,12 +1166,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1251,7 +1256,7 @@ dependencies = [ "html-escape", "hugr", "hugr-model", - "indexmap 2.12.0", + "indexmap 2.12.1", "insta", "itertools 0.14.0", "jsonschema", @@ -1309,7 +1314,7 @@ dependencies = [ "bumpalo", "capnp", "derive_more 2.1.0", - "indexmap 2.12.0", + "indexmap 2.12.1", "insta", "itertools 0.14.0", "ordered-float", @@ -1378,9 +1383,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -1399,9 +1404,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "base64", "bytes", @@ -1602,12 +1607,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -1623,9 +1628,9 @@ dependencies = [ [[package]] name = "inkwell" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9600fe514cef87530b1ccea444dce1a6defab027c55c023a1466302694ffa439" +checksum = "39457e8611219cf690f862a470575f5c06862910d03ea3c3b187ad7abc44b4e2" dependencies = [ "inkwell_internals", "libc", @@ -1683,9 +1688,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -1744,9 +1749,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -1754,13 +1759,13 @@ dependencies = [ [[package]] name = "jsonschema" -version = "0.35.0" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0303b14f91cbac17c64aaf2ef60ab71fe5f34c3867cedcbca72c9dd15f5040fe" +checksum = "73c9ffb2b5c56d58030e1b532d8e8389da94590515f118cf35b5cb68e4764a7e" dependencies = [ "ahash", - "base64", "bytecount", + "data-encoding", "email_address", "fancy-regex", "fraction", @@ -1788,9 +1793,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "linux-raw-sys" @@ -1828,9 +1833,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" @@ -1849,9 +1854,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "wasi", @@ -2047,9 +2052,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", "ucd-trie", @@ -2057,9 +2062,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" +checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" dependencies = [ "pest", "pest_generator", @@ -2067,9 +2072,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" +checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" dependencies = [ "pest", "pest_meta", @@ -2080,9 +2085,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" +checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" dependencies = [ "pest", "sha2", @@ -2095,7 +2100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.12.0", + "indexmap 2.12.1", ] [[package]] @@ -2106,7 +2111,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset 0.5.7", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "serde", ] @@ -2164,9 +2169,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portgraph" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "654a4341391cb49edc51ea9905b8271e5c2685bb0fdf09eda940f6281fbc95a9" +checksum = "0d2bc5f0a75d052384bd7f73a30b8e264041cebeeab29cfee0c6b72224bfd57f" dependencies = [ "bitvec", "delegate", @@ -2335,9 +2340,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383" +checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" dependencies = [ "indoc", "libc", @@ -2352,18 +2357,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f" +checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105" +checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" dependencies = [ "libc", "pyo3-build-config", @@ -2371,9 +2376,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded" +checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -2383,9 +2388,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf" +checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" dependencies = [ "heck", "proc-macro2", @@ -2402,9 +2407,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -2538,14 +2543,14 @@ dependencies = [ [[package]] name = "referencing" -version = "0.35.0" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d0d0665043906aacf1d83bea9d61e5134f8f437815b84320e7facf8ff4e9c2" +checksum = "4283168a506f0dcbdce31c9f9cce3129c924da4c6bca46e46707fcb746d2d70c" dependencies = [ "ahash", "fluent-uri", "getrandom", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "parking_lot", "percent-encoding", "serde_json", @@ -2604,9 +2609,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "b6eff9328d40131d43bd911d42d79eb6a47312002a4daefc9e37f17e74a7701a" dependencies = [ "base64", "bytes", @@ -2847,15 +2852,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.0", + "indexmap 2.12.1", "schemars 0.9.0", "schemars 1.1.0", "serde_core", @@ -2866,9 +2871,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling", "proc-macro2", @@ -2882,7 +2887,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "ryu", "serde", @@ -3014,9 +3019,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -3231,11 +3236,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.23.7" +version = "0.23.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "toml_datetime", "toml_parser", "winnow", @@ -3267,9 +3272,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "bitflags", "bytes", @@ -3297,9 +3302,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3308,9 +3313,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -3319,9 +3324,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" dependencies = [ "once_cell", "valuable", @@ -3340,9 +3345,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "nu-ansi-term", "sharded-slab", @@ -3468,9 +3473,9 @@ dependencies = [ [[package]] name = "utf8-width" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" [[package]] name = "utf8_iter" @@ -3557,9 +3562,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -3570,9 +3575,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.55" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -3583,9 +3588,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3593,9 +3598,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", @@ -3606,18 +3611,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -3906,9 +3911,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -3974,18 +3979,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 4fb006dbd6..7e910744bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,14 +45,14 @@ insta = { version = "1.44.3" } bitvec = "1.0.1" capnp = "0.23.0" cgmath = "0.18.0" -cool_asserts = "2.0.3" +cool_asserts = "2.0.4" delegate = "0.13.5" derive_more = "2.1.0" downcast-rs = "2.0.2" enum_dispatch = "0.3.11" html-escape = "0.2.13" itertools = "0.14.0" -jsonschema = "0.35.0" +jsonschema = "0.37.4" num-rational = "0.4.1" pastey = "0.2.0" proptest = "1.9.0" @@ -63,7 +63,7 @@ rstest = "0.26.1" semver = "1.0.27" serde = "1.0.228" serde_json = "1.0.145" -serde_with = "3.16.0" +serde_with = "3.16.1" serde_yaml = "0.9.34" smallvec = "1.15.1" smol_str = "0.3.1" @@ -72,20 +72,20 @@ strum = "0.27.2" tempfile = "3.22" thiserror = "2.0.17" typetag = "0.2.21" -clap = { version = "4.5.52" } +clap = { version = "4.5.53" } clio = "0.3.5" clap-verbosity-flag = "3.0.4" assert_cmd = "2.1" assert_fs = "1.1.3" predicates = "3.1.0" -indexmap = "2.12.0" +indexmap = "2.12.1" rustc-hash = "2.1.1" bumpalo = "3.19.0" pathsearch = "0.2.0" base64 = "0.22.1" ordered-float = "5.0.0" -pest = "2.8.2" -pest_derive = "2.8.2" +pest = "2.8.4" +pest_derive = "2.8.4" pretty = "0.12.5" pretty_assertions = "1.4.1" zstd = "0.13.2" @@ -95,9 +95,11 @@ schemars = "1.1.0" # These public dependencies usually require breaking changes downstream, so we # try to be as permissive as possible. -pyo3 = ">= 0.23.4, < 0.27" -portgraph = { version = "0.15.2" } -petgraph = { version = ">= 0.8.1, < 0.9", default-features = false } +portgraph = { version = "0.15.3" } +petgraph = { version = ">= 0.8.3, < 0.9", default-features = false } +# There can only be one `pyo3` dependency in the whole workspace, so we use a +# loose version constraint to prevent breaking changes in dependent crates where possible. +pyo3 = ">= 0.27.2, < 0.28" [profile.dev.package] insta.opt-level = 3 diff --git a/hugr-core/src/hugr/serialize/test.rs b/hugr-core/src/hugr/serialize/test.rs index 12546a8e43..8e1e8d044d 100644 --- a/hugr-core/src/hugr/serialize/test.rs +++ b/hugr-core/src/hugr/serialize/test.rs @@ -80,7 +80,7 @@ impl NamedSchema { strs.extend(errors.flat_map(|error| { [ format!("Validation error: {error}"), - format!("Instance path: {}", error.instance_path), + format!("Instance path: {}", error.instance_path()), ] })); strs.push("Serialization test failed.".to_string()); diff --git a/hugr-model/src/v0/ast/python.rs b/hugr-model/src/v0/ast/python.rs index 4f884922cd..6cd49b5d66 100644 --- a/hugr-model/src/v0/ast/python.rs +++ b/hugr-model/src/v0/ast/python.rs @@ -4,13 +4,15 @@ use crate::v0::Visibility; use super::{Module, Node, Operation, Package, Param, Region, SeqPart, Symbol, Term}; use pyo3::{ - Bound, PyAny, PyResult, + PyAny, exceptions::PyTypeError, types::{PyAnyMethods, PyStringMethods as _, PyTypeMethods as _}, }; -impl<'py> pyo3::FromPyObject<'py> for Term { - fn extract_bound(term: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Term { + type Error = pyo3::PyErr; + + fn extract(term: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let name = term.get_type().name()?; Ok(match name.to_cow()?.as_ref() { @@ -90,8 +92,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Term { } } -impl<'py> pyo3::FromPyObject<'py> for SeqPart { - fn extract_bound(part: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for SeqPart { + type Error = pyo3::PyErr; + + fn extract(part: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let name = part.get_type().name()?; if name.to_cow()?.as_ref() == "Splice" { @@ -121,8 +125,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &SeqPart { } } -impl<'py> pyo3::FromPyObject<'py> for Param { - fn extract_bound(symbol: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Param { + type Error = pyo3::PyErr; + + fn extract(symbol: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let name = symbol.getattr("name")?.extract()?; let r#type = symbol.getattr("type")?.extract()?; Ok(Self { name, r#type }) @@ -141,8 +147,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Param { } } -impl<'py> pyo3::FromPyObject<'py> for Visibility { - fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Visibility { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { match ob.str()?.to_cow()?.as_ref() { "Public" => Ok(Visibility::Public), "Private" => Ok(Visibility::Private), @@ -167,8 +175,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Visibility { } } -impl<'py> pyo3::FromPyObject<'py> for Symbol { - fn extract_bound(symbol: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Symbol { + type Error = pyo3::PyErr; + + fn extract(symbol: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let name = symbol.getattr("name")?.extract()?; let params: Vec<_> = symbol.getattr("params")?.extract()?; let visibility = symbol.getattr("visibility")?.extract()?; @@ -202,8 +212,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Symbol { } } -impl<'py> pyo3::FromPyObject<'py> for Node { - fn extract_bound(node: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Node { + type Error = pyo3::PyErr; + + fn extract(node: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let operation = node.getattr("operation")?.extract()?; let inputs: Vec<_> = node.getattr("inputs")?.extract()?; let outputs: Vec<_> = node.getattr("outputs")?.extract()?; @@ -241,8 +253,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Node { } } -impl<'py> pyo3::FromPyObject<'py> for Operation { - fn extract_bound(op: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Operation { + type Error = pyo3::PyErr; + + fn extract(op: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let name = op.get_type().name()?; Ok(match name.to_cow()?.as_ref() { @@ -358,8 +372,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Operation { } } -impl<'py> pyo3::FromPyObject<'py> for Region { - fn extract_bound(region: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Region { + type Error = pyo3::PyErr; + + fn extract(region: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let kind = region.getattr("kind")?.extract()?; let sources: Vec<_> = region.getattr("sources")?.extract()?; let targets: Vec<_> = region.getattr("targets")?.extract()?; @@ -397,8 +413,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Region { } } -impl<'py> pyo3::FromPyObject<'py> for Module { - fn extract_bound(module: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Module { + type Error = pyo3::PyErr; + + fn extract(module: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let root = module.getattr("root")?.extract()?; Ok(Self { root }) } @@ -416,8 +434,10 @@ impl<'py> pyo3::IntoPyObject<'py> for &Module { } } -impl<'py> pyo3::FromPyObject<'py> for Package { - fn extract_bound(package: &Bound<'py, PyAny>) -> PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for Package { + type Error = pyo3::PyErr; + + fn extract(package: pyo3::Borrowed<'_, 'py, PyAny>) -> pyo3::PyResult { let modules = package.getattr("modules")?.extract()?; Ok(Self { modules }) } diff --git a/hugr-model/src/v0/mod.rs b/hugr-model/src/v0/mod.rs index 40a637e413..67408458f4 100644 --- a/hugr-model/src/v0/mod.rs +++ b/hugr-model/src/v0/mod.rs @@ -370,8 +370,10 @@ pub enum ScopeClosure { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for ScopeClosure { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for ScopeClosure { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { let value: usize = ob.getattr("value")?.extract()?; match value { 0 => Ok(Self::Open), @@ -413,8 +415,10 @@ pub enum RegionKind { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for RegionKind { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for RegionKind { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { let value: usize = ob.getattr("value")?.extract()?; match value { 0 => Ok(Self::DataFlow), @@ -463,8 +467,10 @@ impl AsRef for VarName { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for VarName { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for VarName { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { let name: String = ob.extract()?; Ok(Self::new(name)) } @@ -499,8 +505,10 @@ impl AsRef for SymbolName { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for SymbolName { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for SymbolName { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { let name: String = ob.extract()?; Ok(Self::new(name)) } @@ -531,8 +539,10 @@ impl AsRef for LinkName { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for LinkName { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { +impl<'py> pyo3::FromPyObject<'_, 'py> for LinkName { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { let name: String = ob.extract()?; Ok(Self::new(name)) } @@ -567,18 +577,20 @@ pub enum Literal { } #[cfg(feature = "pyo3")] -impl<'py> pyo3::FromPyObject<'py> for Literal { - fn extract_bound(ob: &pyo3::Bound<'py, pyo3::PyAny>) -> pyo3::PyResult { - if pyo3::types::PyString::is_type_of(ob) { +impl<'py> pyo3::FromPyObject<'_, 'py> for Literal { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'_, 'py, pyo3::PyAny>) -> pyo3::PyResult { + if pyo3::types::PyString::is_type_of(&ob) { let value: String = ob.extract()?; Ok(Literal::Str(value.into())) - } else if pyo3::types::PyInt::is_type_of(ob) { + } else if pyo3::types::PyInt::is_type_of(&ob) { let value: u64 = ob.extract()?; Ok(Literal::Nat(value)) - } else if pyo3::types::PyFloat::is_type_of(ob) { + } else if pyo3::types::PyFloat::is_type_of(&ob) { let value: f64 = ob.extract()?; Ok(Literal::Float(value.into())) - } else if pyo3::types::PyBytes::is_type_of(ob) { + } else if pyo3::types::PyBytes::is_type_of(&ob) { let value: Vec = ob.extract()?; Ok(Literal::Bytes(value.into())) } else {