diff --git a/3rdparty/constraints.txt b/3rdparty/constraints.txt index 59c85dfb6..f8a72800d 100644 --- a/3rdparty/constraints.txt +++ b/3rdparty/constraints.txt @@ -634,69 +634,69 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "13b99ecb9482aff6a6c12d1ca6feef6940c507af909914b49f568de74fa965fb", - "url": "https://files.pythonhosted.org/packages/76/f2/98fd8d0b514622a789fd2824b59bd6041b799aaeeba14a8d92d52f6654dd/cython-3.2.2-py3-none-any.whl" + "hash": "06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e", + "url": "https://files.pythonhosted.org/packages/e5/41/54fd429ff8147475fc24ca43246f85d78fb4e747c27f227e68f1594648f1/cython-3.2.3-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "820c4a99dbf6b3e6c0300be42b4040b501eff0e1feeb80cfa52c48a346fb0df2", - "url": "https://files.pythonhosted.org/packages/15/b9/d9a103feb74d04579c6bde7b0cad6d5f45c002d843ca70788a5758707b68/cython-3.2.2-cp39-abi3-musllinux_1_2_x86_64.whl" + "hash": "d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0", + "url": "https://files.pythonhosted.org/packages/29/ad/15da606d71f40bcf2c405f84ca3d4195cb252f4eaa2f551fe6b2e630ee7c/cython-3.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c3add3d483acc73129a61d105389344d792c17e7c1cee24863f16416bd071634", - "url": "https://files.pythonhosted.org/packages/29/17/55fc687ba986f2210298fa2f60fec265fa3004c3f9a1e958ea1fe2d4e061/cython-3.2.2.tar.gz" + "hash": "f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6", + "url": "https://files.pythonhosted.org/packages/39/e1/c0d92b1258722e1bc62a12e630c33f1f842fdab53fd8cd5de2f75c6449a9/cython-3.2.3.tar.gz" }, { "algorithm": "sha256", - "hash": "436eb562d0affbc0b959f62f3f9c1ed251b9499e4f29c1d19514ae859894b6bf", - "url": "https://files.pythonhosted.org/packages/51/fa/584f4b56b35b3e7a43dc16603dd722cb5528484da67c27136534b782827b/cython-3.2.2-cp39-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" + "hash": "74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0", + "url": "https://files.pythonhosted.org/packages/43/49/afe1e3df87a770861cf17ba39f4a91f6d22a2571010fc1890b3708360630/cython-3.2.3-cp39-abi3-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "692a41c8fe06fb2dc55ca2c8d71c80c469fd16fe69486ed99f3b3cbb2d3af83f", - "url": "https://files.pythonhosted.org/packages/57/0f/6fd78dc581373722bb9dedfc90c35b59ba88af988756315af227a877c7a2/cython-3.2.2-cp312-cp312-macosx_11_0_arm64.whl" + "hash": "c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef", + "url": "https://files.pythonhosted.org/packages/51/0e/1a071381923e896f751f8fbff2a01c5dc8860a8b9a90066f6ec8df561dc4/cython-3.2.3-cp39-abi3-musllinux_1_2_armv7l.whl" }, { "algorithm": "sha256", - "hash": "14432d7f207245a3c35556155873f494784169297b28978a6204f1c60d31553e", - "url": "https://files.pythonhosted.org/packages/5c/79/3e487876addd0d69c148a529f3973c1942498ad39cede1e63565676064ed/cython-3.2.2-cp39-abi3-musllinux_1_2_i686.whl" + "hash": "3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd", + "url": "https://files.pythonhosted.org/packages/69/16/d254359396c2f099ab154f89b2b35f5b8b0dd21a8102c2c96a7e00291434/cython-3.2.3-cp39-abi3-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "b4fe499eed7cd70b2aa4e096b9ce2588f5e6fdf049b46d40a5e55efcde6e4904", - "url": "https://files.pythonhosted.org/packages/90/6f/741186935c52de99acf4d7fad5c3dcf28d980b4c95d171d9618f9c399316/cython-3.2.2-cp39-abi3-musllinux_1_2_armv7l.whl" + "hash": "6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0", + "url": "https://files.pythonhosted.org/packages/95/14/af02ba6e2e03279f2ca2956e3024a44faed4c8496bda8170b663dc3ba6e8/cython-3.2.3-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl" }, { "algorithm": "sha256", - "hash": "098590c1dc309f8a0406ade031963a95a87714296b425539f9920aebf924560d", - "url": "https://files.pythonhosted.org/packages/b0/52/50b6263c2fbad73aae8911ce54641ee1739d430a0592d3b3510591d7842b/cython-3.2.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" + "hash": "cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5", + "url": "https://files.pythonhosted.org/packages/b4/14/d16282d17c9eb2f78ca9ccd5801fed22f6c3360f5a55dbcce3c93cc70352/cython-3.2.3-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "d8c93fe128b58942832b1fcac96e48f93c2c69b569eff0d38d30fb5995fecfa0", - "url": "https://files.pythonhosted.org/packages/b9/44/c0b8854e0bf6d444c88cc2050f550d964596daea20eaf1bc592fcfde2782/cython-3.2.2-cp39-abi3-musllinux_1_2_aarch64.whl" + "hash": "0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce", + "url": "https://files.pythonhosted.org/packages/c7/da/044f725a083e28fb4de5bd33d13ec13f0753734b6ae52d4bc07434610cc8/cython-3.2.3-cp39-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" }, { "algorithm": "sha256", - "hash": "f560ff3aea5b5df93853ec7bf1a1e9623d6d511f4192f197559aca18fca43392", - "url": "https://files.pythonhosted.org/packages/d1/d4/063c34a34d9ef54836a5dafb100b8f4fdbdaa63942913fe93f9eb93a11a2/cython-3.2.2-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl" + "hash": "f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514", + "url": "https://files.pythonhosted.org/packages/d0/3c/46304a942dac5a636701c55f5b05ec00ad151e6722cd068fe3d0993349bb/cython-3.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "a3898c076e9c458bcb3e4936187919fda5f5365fe4c567d35d2b003444b6f3fe", - "url": "https://files.pythonhosted.org/packages/d6/44/4e34d161674c9162c6eb9ddef0cd69d41d92ae7e6dee3945fed3a6871ebe/cython-3.2.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" + "hash": "9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df", + "url": "https://files.pythonhosted.org/packages/d4/ae/c284b06ae6a9c95d5883bf8744d10466cf0df64cef041a4c80ccf9fd07bd/cython-3.2.3-cp39-abi3-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a6387e3ad31342443916db9a419509935fddd8d4cbac34aab9c895ae55326a56", - "url": "https://files.pythonhosted.org/packages/f4/69/5430879d35235ec3d5ffd778862173b6419390509ae4e37a72bdd45d9e86/cython-3.2.2-cp39-abi3-macosx_10_9_x86_64.whl" + "hash": "3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d", + "url": "https://files.pythonhosted.org/packages/f4/46/1e93e10766db988e6bb8e5c6f7e2e90b9e62f1ac8dee4c1a6cf1fc170773/cython-3.2.3-cp39-abi3-musllinux_1_2_i686.whl" } ], "project_name": "cython", "requires_dists": [], "requires_python": ">=3.8", - "version": "3.2.2" + "version": "3.2.3" }, { "artifacts": [ @@ -971,13 +971,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "c7b2cbfb1a31aa0d2e5341eea03a6805349f7a61647daee1a15c46bbe981494c", - "url": "https://files.pythonhosted.org/packages/17/f8/01bf35a3afd734345528f98d0353f2a978a476528ad4d7e78b70c4d149dd/flask_cors-6.0.1-py3-none-any.whl" + "hash": "e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a", + "url": "https://files.pythonhosted.org/packages/4f/af/72ad54402e599152de6d067324c46fe6a4f531c7c65baf7e96c63db55eaf/flask_cors-6.0.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "d81bcb31f07b0985be7f48406247e9243aced229b7747219160a0559edd678db", - "url": "https://files.pythonhosted.org/packages/76/37/bcfa6c7d5eec777c4c7cf45ce6b27631cebe5230caf88d85eadd63edd37a/flask_cors-6.0.1.tar.gz" + "hash": "6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423", + "url": "https://files.pythonhosted.org/packages/70/74/0fc0fa68d62f21daef41017dafab19ef4b36551521260987eb3a5394c7ba/flask_cors-6.0.2.tar.gz" } ], "project_name": "flask-cors", @@ -986,7 +986,7 @@ "flask>=0.9" ], "requires_python": "<4.0,>=3.9", - "version": "6.0.1" + "version": "6.0.2" }, { "artifacts": [ @@ -1012,43 +1012,43 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "276f14c560e6f98d24ef7f5f44438e55ff5a67f78fa85236b218462c9f5d0635", - "url": "https://files.pythonhosted.org/packages/0c/14/634f7daea5ffe6a5f7a0322ba8e1a0e23c9257b80aa91458107896d1dfc7/fonttools-4.61.0-py3-none-any.whl" + "hash": "17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", + "url": "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "e24a1565c4e57111ec7f4915f8981ecbb61adf66a55f378fdc00e206059fcfef", - "url": "https://files.pythonhosted.org/packages/00/5d/19e5939f773c7cb05480fe2e881d63870b63ee2b4bdb9a77d55b1d36c7b9/fonttools-4.61.0-cp312-cp312-macosx_10_13_universal2.whl" + "hash": "e6bcdf33aec38d16508ce61fd81838f24c83c90a1d1b8c68982857038673d6b8", + "url": "https://files.pythonhosted.org/packages/14/e8/7424ced75473983b964d09f6747fa09f054a6d656f60e9ac9324cf40c743/fonttools-4.61.1-cp312-cp312-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "5a9b78da5d5faa17e63b2404b77feeae105c1b7e75f26020ab7a27b76e02039f", - "url": "https://files.pythonhosted.org/packages/04/35/7b57a5f57d46286360355eff8d6b88c64ab6331107f37a273a71c803798d/fonttools-4.61.0-cp312-cp312-musllinux_1_2_x86_64.whl" + "hash": "15acc09befd16a0fb8a8f62bc147e1a82817542d72184acca9ce6e0aeda9fa6d", + "url": "https://files.pythonhosted.org/packages/6c/44/f3aeac0fa98e7ad527f479e161aca6c3a1e47bb6996b053d45226fe37bf2/fonttools-4.61.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "e2bfacb5351303cae9f072ccf3fc6ecb437a6f359c0606bae4b1ab6715201d87", - "url": "https://files.pythonhosted.org/packages/25/b2/0658faf66f705293bd7e739a4f038302d188d424926be9c59bdad945664b/fonttools-4.61.0-cp312-cp312-macosx_10_13_x86_64.whl" + "hash": "f3cb4a569029b9f291f88aafc927dd53683757e640081ca8c412781ea144565e", + "url": "https://files.pythonhosted.org/packages/6f/16/7decaa24a1bd3a70c607b2e29f0adc6159f36a7e40eaba59846414765fd4/fonttools-4.61.1-cp312-cp312-macosx_10_13_universal2.whl" }, { "algorithm": "sha256", - "hash": "0bdcf2e29d65c26299cc3d502f4612365e8b90a939f46cd92d037b6cb7bb544a", - "url": "https://files.pythonhosted.org/packages/29/a3/1fa90b95b690f0d7541f48850adc40e9019374d896c1b8148d15012b2458/fonttools-4.61.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl" + "hash": "41a7170d042e8c0024703ed13b71893519a1a6d6e18e933e3ec7507a2c26a4b2", + "url": "https://files.pythonhosted.org/packages/94/98/3c4cb97c64713a8cf499b3245c3bf9a2b8fd16a3e375feff2aed78f96259/fonttools-4.61.1-cp312-cp312-macosx_10_13_x86_64.whl" }, { "algorithm": "sha256", - "hash": "ec520a1f0c7758d7a858a00f090c1745f6cde6a7c5e76fb70ea4044a15f712e7", - "url": "https://files.pythonhosted.org/packages/33/f9/0e84d593c0e12244150280a630999835a64f2852276161b62a0f98318de0/fonttools-4.61.0.tar.gz" + "hash": "10d88e55330e092940584774ee5e8a6971b01fc2f4d3466a1d6c158230880796", + "url": "https://files.pythonhosted.org/packages/b7/37/82dbef0f6342eb01f54bca073ac1498433d6ce71e50c3c3282b655733b31/fonttools-4.61.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e074bc07c31406f45c418e17c1722e83560f181d122c412fa9e815df0ff74810", - "url": "https://files.pythonhosted.org/packages/5f/e0/19a2b86e54109b1d2ee8743c96a1d297238ae03243897bc5345c0365f34d/fonttools-4.61.0-cp312-cp312-musllinux_1_2_aarch64.whl" + "hash": "5fade934607a523614726119164ff621e8c30e8fa1ffffbbd358662056ba69f0", + "url": "https://files.pythonhosted.org/packages/c8/8b/6391b257fa3d0b553d73e778f953a2f0154292a7a7a085e2374b111e5410/fonttools-4.61.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e6cd0d9051b8ddaf7385f99dd82ec2a058e2b46cf1f1961e68e1ff20fcbb61af", - "url": "https://files.pythonhosted.org/packages/af/00/acf18c00f6c501bd6e05ee930f926186f8a8e268265407065688820f1c94/fonttools-4.61.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" + "hash": "6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", + "url": "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz" } ], "project_name": "fonttools", @@ -1083,7 +1083,7 @@ "zopfli>=0.1.4; extra == \"woff\"" ], "requires_python": ">=3.10", - "version": "4.61.0" + "version": "4.61.1" }, { "artifacts": [ @@ -2009,33 +2009,33 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "4c14b6acd16cddc3569a2d515cfdd81c7a68ac5639b76548cfc1a9e48b20eb65", - "url": "https://files.pythonhosted.org/packages/88/57/eab4a719fd110312d3c220595d63a3c85ec2a39723f0f4e7fa7e6e3f74ba/matplotlib-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl" + "hash": "99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", + "url": "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c380371d3c23e0eadf8ebff114445b9f970aff2010198d498d4ab4c3b41eea4f", - "url": "https://files.pythonhosted.org/packages/11/0b/1ae80ddafb8652fd8046cb5c8460ecc8d4afccb89e2c6d6bec61e04e1eaf/matplotlib-3.10.7-cp312-cp312-macosx_11_0_arm64.whl" + "hash": "24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", + "url": "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "d5f256d49fea31f40f166a5e3131235a5d2f4b7f44520b1cf0baf1ce568ccff0", - "url": "https://files.pythonhosted.org/packages/7d/18/95ae2e242d4a5c98bd6e90e36e128d71cf1c7e39b0874feaed3ef782e789/matplotlib-3.10.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" + "hash": "3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", + "url": "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" }, { "algorithm": "sha256", - "hash": "11ae579ac83cdf3fb72573bb89f70e0534de05266728740d478f0f818983c695", - "url": "https://files.pythonhosted.org/packages/7e/3d/5b559efc800bd05cb2033aa85f7e13af51958136a48327f7c261801ff90a/matplotlib-3.10.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl" + "hash": "b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", + "url": "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "a06ba7e2a2ef9131c79c49e63dad355d2d878413a0376c1727c8b9335ff731c7", - "url": "https://files.pythonhosted.org/packages/ae/e2/d2d5295be2f44c678ebaf3544ba32d20c1f9ef08c49fe47f496180e1db15/matplotlib-3.10.7.tar.gz" + "hash": "2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", + "url": "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz" }, { "algorithm": "sha256", - "hash": "7a0edb7209e21840e8361e91ea84ea676658aa93edd5f8762793dec77a4a6748", - "url": "https://files.pythonhosted.org/packages/be/b3/09eb0f7796932826ec20c25b517d568627754f6c6462fca19e12c02f2e12/matplotlib-3.10.7-cp312-cp312-macosx_10_13_x86_64.whl" + "hash": "64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", + "url": "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl" } ], "project_name": "matplotlib", @@ -2055,7 +2055,7 @@ "setuptools_scm>=7; extra == \"dev\"" ], "requires_python": ">=3.10", - "version": "3.10.7" + "version": "3.10.8" }, { "artifacts": [ @@ -2187,13 +2187,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "cdb395b105806062473d3be36458d8f1459a4e4b98e236a66c3a48996e07684f", - "url": "https://files.pythonhosted.org/packages/07/c7/d64168da60332c17d24c0d2f08bdf3987e8d1ae9d84b5bbd0eec2eb26a55/networkx-3.6-py3-none-any.whl" + "hash": "d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", + "url": "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "285276002ad1f7f7da0f7b42f004bcba70d381e936559166363707fdad3d72ad", - "url": "https://files.pythonhosted.org/packages/e8/fc/7b6fd4d22c8c4dc5704430140d8b3f520531d4fe7328b8f8d03f5a7950e8/networkx-3.6.tar.gz" + "hash": "26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", + "url": "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz" } ], "project_name": "networkx", @@ -2236,8 +2236,8 @@ "virtualenv; extra == \"benchmarking\"", "wheel>=0.40; extra == \"release\"" ], - "requires_python": ">=3.11", - "version": "3.6" + "requires_python": "!=3.14.1,>=3.11", + "version": "3.6.1" }, { "artifacts": [ @@ -3654,77 +3654,75 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b4d6e9deed1a47aca9fe2f267ab8e8fe82ee20b4526b2c0cd9e135cea10feb44", - "url": "https://files.pythonhosted.org/packages/82/70/8bf44b933837ba8494ca0fc9a9ab60f1c13b062ad0197f60a56e2fc4c43e/scikit_learn-1.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl" + "hash": "a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", + "url": "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" }, { "algorithm": "sha256", - "hash": "acbc0f5fd2edd3432a22c69bed78e837c70cf896cd7993d71d51ba6708507476", - "url": "https://files.pythonhosted.org/packages/43/5d/779320063e88af9c4a7c2cf463ff11c21ac9c8bd730c4a294b0000b666c9/scikit_learn-1.7.2-cp312-cp312-macosx_12_0_arm64.whl" + "hash": "9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", + "url": "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz" }, { "algorithm": "sha256", - "hash": "e5bf3d930aee75a65478df91ac1225ff89cd28e9ac7bd1196853a9229b6adb0b", - "url": "https://files.pythonhosted.org/packages/5c/d0/0c577d9325b05594fdd33aa970bf53fb673f051a45496842caee13cfd7fe/scikit_learn-1.7.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" + "hash": "5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", + "url": "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", - "url": "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz" + "hash": "5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", + "url": "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl" }, { "algorithm": "sha256", - "hash": "8d91a97fa2b706943822398ab943cde71858a50245e31bc71dba62aab1d60a96", - "url": "https://files.pythonhosted.org/packages/a7/aa/3996e2196075689afb9fce0410ebdb4a09099d7964d061d7213700204409/scikit_learn-1.7.2-cp312-cp312-macosx_10_13_x86_64.whl" + "hash": "4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", + "url": "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl" } ], "project_name": "scikit-learn", "requires_dists": [ - "Pillow>=8.4.0; extra == \"docs\"", + "Pillow>=10.1.0; extra == \"docs\"", "conda-lock==3.0.1; extra == \"maintenance\"", - "cython>=3.0.10; extra == \"build\"", - "joblib>=1.2.0", - "joblib>=1.2.0; extra == \"install\"", - "matplotlib>=3.5.0; extra == \"benchmark\"", - "matplotlib>=3.5.0; extra == \"docs\"", - "matplotlib>=3.5.0; extra == \"examples\"", - "matplotlib>=3.5.0; extra == \"tests\"", + "cython>=3.1.2; extra == \"build\"", + "joblib>=1.3.0", + "joblib>=1.3.0; extra == \"install\"", + "matplotlib>=3.6.1; extra == \"benchmark\"", + "matplotlib>=3.6.1; extra == \"docs\"", + "matplotlib>=3.6.1; extra == \"examples\"", + "matplotlib>=3.6.1; extra == \"tests\"", "memory_profiler>=0.57.0; extra == \"benchmark\"", "memory_profiler>=0.57.0; extra == \"docs\"", "meson-python>=0.17.1; extra == \"build\"", "mypy>=1.15; extra == \"tests\"", - "numpy>=1.22.0", - "numpy>=1.22.0; extra == \"build\"", - "numpy>=1.22.0; extra == \"install\"", + "numpy>=1.24.1", + "numpy>=1.24.1; extra == \"build\"", + "numpy>=1.24.1; extra == \"install\"", "numpydoc>=1.2.0; extra == \"docs\"", "numpydoc>=1.2.0; extra == \"tests\"", - "pandas>=1.4.0; extra == \"benchmark\"", - "pandas>=1.4.0; extra == \"docs\"", - "pandas>=1.4.0; extra == \"examples\"", - "pandas>=1.4.0; extra == \"tests\"", - "plotly>=5.14.0; extra == \"docs\"", - "plotly>=5.14.0; extra == \"examples\"", + "pandas>=1.5.0; extra == \"benchmark\"", + "pandas>=1.5.0; extra == \"docs\"", + "pandas>=1.5.0; extra == \"examples\"", + "pandas>=1.5.0; extra == \"tests\"", + "plotly>=5.18.0; extra == \"docs\"", + "plotly>=5.18.0; extra == \"examples\"", "polars>=0.20.30; extra == \"docs\"", "polars>=0.20.30; extra == \"tests\"", - "pooch>=1.6.0; extra == \"docs\"", - "pooch>=1.6.0; extra == \"examples\"", - "pooch>=1.6.0; extra == \"tests\"", - "pyamg>=4.2.1; extra == \"tests\"", + "pooch>=1.8.0; extra == \"docs\"", + "pooch>=1.8.0; extra == \"examples\"", + "pooch>=1.8.0; extra == \"tests\"", + "pyamg>=5.0.0; extra == \"tests\"", "pyarrow>=12.0.0; extra == \"tests\"", "pydata-sphinx-theme>=0.15.3; extra == \"docs\"", "pytest-cov>=2.9.0; extra == \"tests\"", "pytest>=7.1.2; extra == \"tests\"", "ruff>=0.11.7; extra == \"tests\"", - "scikit-image>=0.19.0; extra == \"docs\"", - "scikit-image>=0.19.0; extra == \"examples\"", - "scikit-image>=0.19.0; extra == \"tests\"", - "scipy>=1.8.0", - "scipy>=1.8.0; extra == \"build\"", - "scipy>=1.8.0; extra == \"install\"", - "seaborn>=0.9.0; extra == \"docs\"", - "seaborn>=0.9.0; extra == \"examples\"", + "scikit-image>=0.22.0; extra == \"docs\"", + "scikit-image>=0.22.0; extra == \"examples\"", + "scipy>=1.10.0", + "scipy>=1.10.0; extra == \"build\"", + "scipy>=1.10.0; extra == \"install\"", + "seaborn>=0.13.0; extra == \"docs\"", + "seaborn>=0.13.0; extra == \"examples\"", "sphinx-copybutton>=0.5.2; extra == \"docs\"", - "sphinx-design>=0.5.0; extra == \"docs\"", "sphinx-design>=0.6.0; extra == \"docs\"", "sphinx-gallery>=0.17.1; extra == \"docs\"", "sphinx-prompt>=1.4.0; extra == \"docs\"", @@ -3732,12 +3730,12 @@ "sphinx>=7.3.7; extra == \"docs\"", "sphinxcontrib-sass>=0.3.4; extra == \"docs\"", "sphinxext-opengraph>=0.9.1; extra == \"docs\"", - "threadpoolctl>=3.1.0", - "threadpoolctl>=3.1.0; extra == \"install\"", + "threadpoolctl>=3.2.0", + "threadpoolctl>=3.2.0; extra == \"install\"", "towncrier>=24.8.0; extra == \"docs\"" ], - "requires_python": ">=3.10", - "version": "1.7.2" + "requires_python": ">=3.11", + "version": "1.8.0" }, { "artifacts": [ @@ -4287,31 +4285,31 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", - "url": "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl" + "hash": "06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", + "url": "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", - "url": "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz" + "hash": "de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", + "url": "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz" } ], "project_name": "tzdata", "requires_dists": [], "requires_python": ">=2", - "version": "2025.2" + "version": "2025.3" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f", - "url": "https://files.pythonhosted.org/packages/56/1a/9ffe814d317c5224166b23e7c47f606d6e473712a2fad0f704ea9b99f246/urllib3-2.6.0-py3-none-any.whl" + "hash": "ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", + "url": "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1", - "url": "https://files.pythonhosted.org/packages/1c/43/554c2569b62f49350597348fc3ac70f786e3c32e7f19d266e19817812dd3/urllib3-2.6.0.tar.gz" + "hash": "016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", + "url": "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz" } ], "project_name": "urllib3", @@ -4323,7 +4321,7 @@ "pysocks!=1.5.7,<2.0,>=1.5.6; extra == \"socks\"" ], "requires_python": ">=3.9", - "version": "2.6.0" + "version": "2.6.2" }, { "artifacts": [ diff --git a/3rdparty/mypy-requirements.txt b/3rdparty/mypy-requirements.txt index 3ecb324cf..0a087f0c7 100644 --- a/3rdparty/mypy-requirements.txt +++ b/3rdparty/mypy-requirements.txt @@ -1 +1 @@ -mypy==1.11.2 \ No newline at end of file +mypy==1.19.1 \ No newline at end of file diff --git a/3rdparty/mypy_lockfile.txt b/3rdparty/mypy_lockfile.txt index 3bb479804..2511ed5f8 100644 --- a/3rdparty/mypy_lockfile.txt +++ b/3rdparty/mypy_lockfile.txt @@ -9,7 +9,7 @@ // "CPython==3.12.*" // ], // "generated_with_requirements": [ -// "mypy==1.11.2" +// "mypy==1.19.1" // ], // "manylinux": "manylinux2014", // "requirement_constraints": [], @@ -33,47 +33,108 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12", - "url": "https://files.pythonhosted.org/packages/42/3a/bdf730640ac523229dd6578e8a581795720a9321399de494374afc437ec5/mypy-1.11.2-py3-none-any.whl" + "hash": "703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c", + "url": "https://files.pythonhosted.org/packages/1f/48/77bc05c4cc232efae6c5592c0095034390992edbd5bae8d6cf1263bb7157/librt-0.7.3-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36", - "url": "https://files.pythonhosted.org/packages/04/e4/1a9051e2ef10296d206519f1df13d2cc896aea39e8683302f89bf5792a59/mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl" + "hash": "d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f", + "url": "https://files.pythonhosted.org/packages/02/10/b612a9944ebd39fa143c7e2e2d33f2cb790205e025ddd903fb509a3a3bb3/librt-0.7.3-cp312-cp312-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318", - "url": "https://files.pythonhosted.org/packages/35/3a/ed7b12ecc3f6db2f664ccf85cb2e004d3e90bec928e9d7be6aa2f16b7cdf/mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl" + "hash": "aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed", + "url": "https://files.pythonhosted.org/packages/02/69/3ba05b73ab29ccbe003856232cea4049769be5942d799e628d1470ed1694/librt-0.7.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79", - "url": "https://files.pythonhosted.org/packages/5c/86/5d7cbc4974fd564550b80fbb8103c05501ea11aa7835edf3351d90095896/mypy-1.11.2.tar.gz" + "hash": "c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e", + "url": "https://files.pythonhosted.org/packages/22/ad/d7c2671e7bf6c285ef408aa435e9cd3fdc06fd994601e1f2b242df12034f/librt-0.7.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca", - "url": "https://files.pythonhosted.org/packages/b6/49/ee5adf6a49ff13f4202d949544d3d08abb0ea1f3e7f2a6d5b4c10ba0360a/mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl" + "hash": "0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3", + "url": "https://files.pythonhosted.org/packages/29/90/ed8595fa4e35b6020317b5ea8d226a782dcbac7a997c19ae89fb07a41c66/librt-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl" }, { "algorithm": "sha256", - "hash": "6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987", - "url": "https://files.pythonhosted.org/packages/f3/3c/350a9da895f8a7e87ade0028b962be0252d152e0c2fbaafa6f0658b4d0d4/mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" + "hash": "e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60", + "url": "https://files.pythonhosted.org/packages/79/f3/b0c4703d5ffe9359b67bb2ccb86c42d4e930a363cfc72262ac3ba53cff3e/librt-0.7.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798", + "url": "https://files.pythonhosted.org/packages/b3/d9/6f3d3fcf5e5543ed8a60cc70fa7d50508ed60b8a10e9af6d2058159ab54e/librt-0.7.3.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18", + "url": "https://files.pythonhosted.org/packages/dd/f6/6a20702a07b41006cb001a759440cb6b5362530920978f64a2b2ae2bf729/librt-0.7.3-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b", + "url": "https://files.pythonhosted.org/packages/f4/94/d13f57193148004592b618555f296b41d2d79b1dc814ff8b3273a0bf1546/librt-0.7.3-cp312-cp312-musllinux_1_2_aarch64.whl" + } + ], + "project_name": "librt", + "requires_dists": [], + "requires_python": ">=3.9", + "version": "0.7.3" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", + "url": "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", + "url": "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", + "url": "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", + "url": "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", + "url": "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", + "url": "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", + "url": "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz" } ], "project_name": "mypy", "requires_dists": [ + "librt>=0.6.2; platform_python_implementation != \"PyPy\"", "lxml; extra == \"reports\"", - "mypy-extensions>=1.0.0", + "mypy_extensions>=1.0.0", + "orjson; extra == \"faster-cache\"", + "pathspec>=0.9.0", "pip; extra == \"install-types\"", "psutil>=4.0; extra == \"dmypy\"", "setuptools>=50; extra == \"mypyc\"", "tomli>=1.1.0; python_version < \"3.11\"", - "typing-extensions>=4.6.0" + "typing_extensions>=4.6.0" ], - "requires_python": ">=3.8", - "version": "1.11.2" + "requires_python": ">=3.9", + "version": "1.19.1" }, { "artifacts": [ @@ -93,6 +154,24 @@ "requires_python": ">=3.8", "version": "1.1.0" }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", + "url": "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", + "url": "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz" + } + ], + "project_name": "pathspec", + "requires_dists": [], + "requires_python": ">=3.8", + "version": "0.12.1" + }, { "artifacts": [ { @@ -123,7 +202,7 @@ "pip_version": "24.2", "prefer_older_binary": false, "requirements": [ - "mypy==1.11.2" + "mypy==1.19.1" ], "requires_python": [ "==3.12.*" diff --git a/3rdparty/pytest_lockfile.txt b/3rdparty/pytest_lockfile.txt index 0edac87ad..322803c19 100644 --- a/3rdparty/pytest_lockfile.txt +++ b/3rdparty/pytest_lockfile.txt @@ -39,63 +39,63 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "159d50c0b12e060b15ed3d39f87ed43d4f7f7ad40b8a534f4dd331adbb51104a", - "url": "https://files.pythonhosted.org/packages/ce/a3/43b749004e3c09452e39bb56347a008f0a0668aad37324a99b5c8ca91d9e/coverage-7.12.0-py3-none-any.whl" + "hash": "850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904", + "url": "https://files.pythonhosted.org/packages/8d/4c/1968f32fb9a2604645827e11ff84a31e59d532e01995f904723b4f5328b3/coverage-7.13.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "29644c928772c78512b48e14156b81255000dcfd4817574ff69def189bcb3647", - "url": "https://files.pythonhosted.org/packages/02/bf/638c0427c0f0d47638242e2438127f3c8ee3cfc06c7fdeb16778ed47f836/coverage-7.12.0-cp312-cp312-macosx_10_13_x86_64.whl" + "hash": "5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74", + "url": "https://files.pythonhosted.org/packages/0d/f8/972a5affea41de798691ab15d023d3530f9f56a72e12e243f35031846ff7/coverage-7.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "8638cbb002eaa5d7c8d04da667813ce1067080b9a91099801a0053086e52b736", - "url": "https://files.pythonhosted.org/packages/08/e1/706fae6692a66c2d6b871a608bbde0da6281903fa0e9f53a39ed441da36a/coverage-7.12.0-cp312-cp312-macosx_11_0_arm64.whl" + "hash": "3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b", + "url": "https://files.pythonhosted.org/packages/19/98/8df9e1af6a493b03694a1e8070e024e7d2cdc77adedc225a35e616d505de/coverage-7.13.0-cp312-cp312-musllinux_1_2_riscv64.whl" }, { "algorithm": "sha256", - "hash": "51777647a749abdf6f6fd8c7cffab12de68ab93aab15efc72fbbb83036c2a068", - "url": "https://files.pythonhosted.org/packages/15/40/c9b29cdb8412c837cdcbc2cfa054547dd83affe6cbbd4ce4fdb92b6ba7d1/coverage-7.12.0-cp312-cp312-musllinux_1_2_i686.whl" + "hash": "581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f", + "url": "https://files.pythonhosted.org/packages/2b/11/30d71ae5d6e949ff93b2a79a2c1b4822e00423116c5c6edfaeef37301396/coverage-7.13.0-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "e949ebf60c717c3df63adb4a1a366c096c8d7fd8472608cd09359e1bd48ef59f", - "url": "https://files.pythonhosted.org/packages/41/e5/38228f31b2c7665ebf9bdfdddd7a184d56450755c7e43ac721c11a4b8dab/coverage-7.12.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" + "hash": "583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621", + "url": "https://files.pythonhosted.org/packages/5b/b6/51b5d1eb6fcbb9a1d5d6984e26cbe09018475c2922d554fd724dd0f056ee/coverage-7.13.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" }, { "algorithm": "sha256", - "hash": "5bcead88c8423e1855e64b8057d0544e33e4080b95b240c2a355334bb7ced937", - "url": "https://files.pythonhosted.org/packages/70/81/b653329b5f6302c08d683ceff6785bc60a34be9ae92a5c7b63ee7ee7acec/coverage-7.12.0-cp312-cp312-musllinux_1_2_x86_64.whl" + "hash": "0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb", + "url": "https://files.pythonhosted.org/packages/79/c2/fce80fc6ded8d77e53207489d6065d0fed75db8951457f9213776615e0f5/coverage-7.13.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" }, { "algorithm": "sha256", - "hash": "fc11e0a4e372cb5f282f16ef90d4a585034050ccda536451901abfb19a57f40c", - "url": "https://files.pythonhosted.org/packages/89/26/4a96807b193b011588099c3b5c89fbb05294e5b90e71018e065465f34eb6/coverage-7.12.0.tar.gz" + "hash": "a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57", + "url": "https://files.pythonhosted.org/packages/8a/56/116513aee860b2c7968aa3506b0f59b22a959261d1dbf3aea7b4450a7520/coverage-7.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" }, { "algorithm": "sha256", - "hash": "083631eeff5eb9992c923e14b810a179798bb598e6a0dd60586819fc23be6e60", - "url": "https://files.pythonhosted.org/packages/a9/8b/eb0231d0540f8af3ffda39720ff43cb91926489d01524e68f60e961366e4/coverage-7.12.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" + "hash": "0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf", + "url": "https://files.pythonhosted.org/packages/9b/f1/2619559f17f31ba00fc40908efd1fbf1d0a5536eb75dc8341e7d660a08de/coverage-7.13.0-cp312-cp312-macosx_10_13_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b1518ecbad4e6173f4c6e6c4a46e49555ea5679bf3feda5edb1b935c7c44e8a0", - "url": "https://files.pythonhosted.org/packages/ba/51/bb163933d195a345c6f63eab9e55743413d064c291b6220df754075c2769/coverage-7.12.0-cp312-cp312-musllinux_1_2_aarch64.whl" + "hash": "a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936", + "url": "https://files.pythonhosted.org/packages/b6/45/2c665ca77ec32ad67e25c77daf1cee28ee4558f3bc571cdbaf88a00b9f23/coverage-7.13.0.tar.gz" }, { "algorithm": "sha256", - "hash": "42435d46d6461a3b305cdfcad7cdd3248787771f53fe18305548cba474e6523b", - "url": "https://files.pythonhosted.org/packages/c8/da/b3131e20ba07a0de4437a50ef3b47840dfabf9293675b0cd5c2c7f66dd61/coverage-7.12.0-cp312-cp312-musllinux_1_2_riscv64.whl" + "hash": "9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8", + "url": "https://files.pythonhosted.org/packages/d6/75/074476d64248fbadf16dfafbf93fdcede389ec821f74ca858d7c87d2a98c/coverage-7.13.0-cp312-cp312-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "99d5415c73ca12d558e07776bd957c4222c687b9f1d26fa0e1b57e3598bdcde8", - "url": "https://files.pythonhosted.org/packages/e9/a1/67fb52af642e974d159b5b379e4d4c59d0ebe1288677fbd04bbffe665a82/coverage-7.12.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" + "hash": "1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd", + "url": "https://files.pythonhosted.org/packages/d8/71/f8679231f3353018ca66ef647fa6fe7b77e6bff7845be54ab84f86233363/coverage-7.13.0-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "6d907ddccbca819afa2cd014bc69983b146cca2735a0b1e6259b2a6c10be1e70", - "url": "https://files.pythonhosted.org/packages/ec/4b/df78e4c8188f9960684267c5a4897836f3f0f20a20c51606ee778a1d9749/coverage-7.12.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" + "hash": "898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d", + "url": "https://files.pythonhosted.org/packages/f2/d2/aa4f8acd1f7c06024705c12609d8698c51b27e4d635d717cd1934c9668e2/coverage-7.13.0-cp312-cp312-musllinux_1_2_i686.whl" } ], "project_name": "coverage", @@ -103,7 +103,7 @@ "tomli; python_full_version <= \"3.11.0a6\" and extra == \"toml\"" ], "requires_python": ">=3.10", - "version": "7.12.0" + "version": "7.13.0" }, { "artifacts": [ diff --git a/src/python/arcor2/cached.py b/src/python/arcor2/cached.py index 1edf223b3..ac57c7afa 100644 --- a/src/python/arcor2/cached.py +++ b/src/python/arcor2/cached.py @@ -3,7 +3,7 @@ import copy from dataclasses import dataclass from datetime import datetime, timezone -from typing import TYPE_CHECKING, Iterator, ValuesView +from typing import Iterator, ValuesView from arcor2.data import common as cmn from arcor2.exceptions import Arcor2Exception @@ -31,14 +31,8 @@ def __init__(self, data: cmn.Scene | cmn.Project | CachedScene | CachedProject) self.int_modified: None | datetime = data.int_modified -class UpdateableMixin: - if TYPE_CHECKING: - __slots__ = "modified", "int_modified" - - modified: None | datetime = None - int_modified: None | datetime = None - else: - __slots__ = () +class UpdateableMixin(CachedBase): + __slots__ = () def update_modified(self) -> None: self.int_modified = datetime.now(tz=timezone.utc) @@ -148,11 +142,11 @@ def get_object_by_name(self, object_method: str) -> str: raise Arcor2Exception(f"Object with method {object_method} was not found") -class UpdateableCachedScene(UpdateableMixin, CachedScene): +class UpdateableCachedScene(CachedScene, UpdateableMixin): __slots__ = () def __init__(self, scene: cmn.Scene | CachedScene): - super(UpdateableCachedScene, self).__init__(copy.deepcopy(scene)) + super().__init__(copy.deepcopy(scene)) def upsert_object(self, obj: cmn.SceneObject) -> None: self._objects[obj.id] = obj @@ -589,7 +583,7 @@ def action_from_name(self, name: str) -> cmn.Action: raise CachedProjectException(f"Action {name} in project {self.name} not found.") -class UpdateableCachedProject(UpdateableMixin, CachedProject): +class UpdateableCachedProject(CachedProject, UpdateableMixin): __slots__ = () def __init__(self, project: cmn.Project | CachedProject): diff --git a/src/python/arcor2/data/common.py b/src/python/arcor2/data/common.py index aa1cb0750..0d12f0936 100644 --- a/src/python/arcor2/data/common.py +++ b/src/python/arcor2/data/common.py @@ -31,7 +31,7 @@ def uid(prefix: str) -> str: class StrEnum(BuiltinStrEnum): @classmethod def set(cls) -> set[str]: - return set(map(lambda c: c.value, cls)) # type: ignore + return {c.value for c in cls} @unique @@ -42,7 +42,7 @@ def set(cls) -> set[int]: class FlowTypes(StrEnum): - DEFAULT: str = "default" + DEFAULT = "default" class LinkToActionOutput(NamedTuple): @@ -407,8 +407,8 @@ class ActionParameterException(Arcor2Exception): @dataclass class ActionParameter(Parameter): class TypeEnum(StrEnum): - PROJECT_PARAMETER: str = "project_parameter" - LINK: str = "link" + PROJECT_PARAMETER = "project_parameter" + LINK = "link" def str_from_value(self) -> str: val = json.loads(self.value) diff --git a/src/python/arcor2/data/events.py b/src/python/arcor2/data/events.py index 05be2322f..dc6733376 100644 --- a/src/python/arcor2/data/events.py +++ b/src/python/arcor2/data/events.py @@ -16,10 +16,10 @@ @dataclass class Event(JsonSchemaMixin): class Type(common.StrEnum): - ADD: str = "add" - UPDATE: str = "update" - REMOVE: str = "remove" - UPDATE_BASE: str = "update_base" + ADD = "add" + UPDATE = "update" + REMOVE = "remove" + UPDATE_BASE = "update_base" event: str = field(init=False) change_type: Optional[Type] = field(init=False) @@ -36,9 +36,9 @@ class Notification(Event): @dataclass class Data(JsonSchemaMixin): class Level(common.StrEnum): - INFO: str = "Info" - WARN: str = "Warn" - ERROR: str = "Error" + INFO = "Info" + WARN = "Warn" + ERROR = "Error" message: str level: Level @@ -72,14 +72,14 @@ class PackageState(Event): @dataclass class Data(JsonSchemaMixin): class StateEnum(Enum): - STARTED: str = "started" # started, but not fully running yet - RUNNING: str = "running" - STOPPING: str = "stopping" # it may take some time to stop the package - STOPPED: str = "stopped" - PAUSING: str = "pausing" # it may take some time to pause the package - PAUSED: str = "paused" - RESUMING: str = "resuming" - UNDEFINED: str = "undefined" + STARTED = "started" # started, but not fully running yet + RUNNING = "running" + STOPPING = "stopping" # it may take some time to stop the package + STOPPED = "stopped" + PAUSING = "pausing" # it may take some time to pause the package + PAUSED = "paused" + RESUMING = "resuming" + UNDEFINED = "undefined" state: StateEnum = StateEnum.UNDEFINED package_id: Optional[str] = None diff --git a/src/python/arcor2/data/object_type.py b/src/python/arcor2/data/object_type.py index 039b917b8..d33961b73 100644 --- a/src/python/arcor2/data/object_type.py +++ b/src/python/arcor2/data/object_type.py @@ -10,11 +10,11 @@ class Model3dType(Enum): - NONE: str = "None" - BOX: str = "Box" - CYLINDER: str = "Cylinder" - SPHERE: str = "Sphere" - MESH: str = "Mesh" + NONE = "None" + BOX = "Box" + CYLINDER = "Cylinder" + SPHERE = "Sphere" + MESH = "Mesh" @dataclass diff --git a/src/python/arcor2/object_types/tests/test_utils.py b/src/python/arcor2/object_types/tests/test_utils.py index 665934eea..b333c8436 100644 --- a/src/python/arcor2/object_types/tests/test_utils.py +++ b/src/python/arcor2/object_types/tests/test_utils.py @@ -7,9 +7,9 @@ class MyEnum(StrEnum): - OPT1: str = "opt1" - OPT2: str = "opt2" - OPT3: str = "opt3" + OPT1 = "opt1" + OPT2 = "opt2" + OPT3 = "opt3" @dataclass diff --git a/src/python/arcor2/object_types/utils.py b/src/python/arcor2/object_types/utils.py index 0e1864ca2..80d096806 100644 --- a/src/python/arcor2/object_types/utils.py +++ b/src/python/arcor2/object_types/utils.py @@ -3,15 +3,15 @@ import os import shutil from dataclasses import is_dataclass -from typing import Any, Callable, Iterator, get_type_hints +from typing import Any, Callable, Iterator, cast, get_type_hints import typing_inspect from dataclasses_jsonschema import JsonSchemaMixin, ValidationError -import arcor2 from arcor2 import json from arcor2.data.common import ActionMetadata, Parameter from arcor2.exceptions import Arcor2Exception +from arcor2.object_types import abstract as abstract_module from arcor2.object_types.abstract import Generic, Settings from arcor2.source.utils import find_class_def, parse @@ -52,7 +52,7 @@ def check_object_type(type_def: type[Generic]) -> None: def built_in_types() -> Iterator[tuple[str, type[Generic]]]: """Yields class name and class definition tuple.""" - for cls_name, cls_type in inspect.getmembers(arcor2.object_types.abstract, predicate=inspect.isclass): + for cls_name, cls_type in inspect.getmembers(abstract_module, predicate=lambda member: inspect.isclass(member)): try: if not issubclass(cls_type, Generic): continue @@ -61,7 +61,7 @@ def built_in_types() -> Iterator[tuple[str, type[Generic]]]: # CancelDict / issubclass() arg 1 must be a class continue - yield cls_name, cls_type + yield cls_name, cast(type[Generic], cls_type) def get_built_in_type(name: str) -> type[Generic]: @@ -163,16 +163,21 @@ def get_settings_def(type_def: type[Generic]) -> type[Settings]: else: settings_cls = param.annotation - if not is_dataclass(settings_cls): + if not inspect.isclass(settings_cls): + raise Arcor2Exception("Settings have invalid annotation.") + + settings_cls_type = cast(type[object], settings_cls) + + if not is_dataclass(settings_cls_type): raise Arcor2Exception("Settings misses @dataclass decorator.") try: - if not issubclass(settings_cls, Settings): - raise Arcor2Exception(f"Settings have invalid type ({settings_cls.__name__}).") + if not issubclass(settings_cls_type, Settings): + raise Arcor2Exception(f"Settings have invalid type ({settings_cls_type.__name__}).") except TypeError: raise Arcor2Exception("Settings have invalid annotation.") - return settings_cls + return settings_cls_type def base_from_source(source: str | ast.AST, cls_name: str) -> list[str]: @@ -215,13 +220,19 @@ def iterate_over_actions( ] ]: for method_name, method in inspect.getmembers(type_def, inspect.isroutine): - try: - if not isinstance(method.__action__, ActionMetadata): - continue - except AttributeError: + action_meta = getattr(method, "__action__", None) + if not isinstance(action_meta, ActionMetadata): continue - yield method_name, method + yield method_name, cast( + Callable[ + [ + Any, + ], + Any, + ], + method, + ) def prepare_object_types_dir(path: str, module: str) -> None: diff --git a/src/python/arcor2/parameter_plugins/double.py b/src/python/arcor2/parameter_plugins/double.py index 0a7ac423e..8985ed340 100644 --- a/src/python/arcor2/parameter_plugins/double.py +++ b/src/python/arcor2/parameter_plugins/double.py @@ -1,4 +1,5 @@ import ast +from ast import Constant from typing import Any, Callable from arcor2.cached import CachedProject as CProject @@ -36,10 +37,8 @@ def _value_from_json(cls, value: str) -> float: @classmethod def parameter_ast( cls, type_defs: TypesDict, scene: CScene, project: CProject, action_id: str, parameter_id: str - ) -> ast.Num: - return ast.Num( - value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id), kind=None - ) + ) -> Constant: + return Constant(value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id)) class DoubleListPlugin(ListParameterPlugin): diff --git a/src/python/arcor2/parameter_plugins/integer.py b/src/python/arcor2/parameter_plugins/integer.py index 1e7c8352c..565d7a893 100644 --- a/src/python/arcor2/parameter_plugins/integer.py +++ b/src/python/arcor2/parameter_plugins/integer.py @@ -1,5 +1,5 @@ import ast -from ast import Num +from ast import Constant from dataclasses import dataclass from typing import Any, Callable @@ -95,8 +95,8 @@ def _value_from_json(cls, value: str) -> int: @classmethod def parameter_ast( cls, type_defs: TypesDict, scene: CScene, project: CProject, action_id: str, parameter_id: str - ) -> Num: - return Num(value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id), kind=None) + ) -> Constant: + return Constant(value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id)) class IntegerListPlugin(ListParameterPlugin): diff --git a/src/python/arcor2/parameter_plugins/string.py b/src/python/arcor2/parameter_plugins/string.py index cdf3fc089..b583f7fca 100644 --- a/src/python/arcor2/parameter_plugins/string.py +++ b/src/python/arcor2/parameter_plugins/string.py @@ -1,4 +1,4 @@ -from ast import Str +from ast import Constant from typing import Any from arcor2.cached import CachedProject as CProject @@ -25,8 +25,8 @@ def parameter_value( @classmethod def parameter_ast( cls, type_defs: TypesDict, scene: CScene, project: CProject, action_id: str, parameter_id: str - ) -> Str: - return Str(value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id), kind="") + ) -> Constant: + return Constant(value=cls.parameter_execution_value(type_defs, scene, project, action_id, parameter_id)) class StringListPlugin(ListParameterPlugin): diff --git a/src/python/arcor2/test_objects/dummy_multiarm_robot.py b/src/python/arcor2/test_objects/dummy_multiarm_robot.py index d2fb79c49..cea2ff0aa 100644 --- a/src/python/arcor2/test_objects/dummy_multiarm_robot.py +++ b/src/python/arcor2/test_objects/dummy_multiarm_robot.py @@ -12,8 +12,8 @@ class DummyMultiArmRobot(MultiArmRobot): _ABSTRACT = False class Arms(StrEnum): - left: str = "left" - right: str = "right" + left = "left" + right = "right" GRIPPERS: dict[str, set[str]] = { Arms.left: {"l_gripper_1", "l_gripper_2"}, diff --git a/src/python/arcor2_arserver/lock/lock.py b/src/python/arcor2_arserver/lock/lock.py index cb7846fd5..bd57607d3 100644 --- a/src/python/arcor2_arserver/lock/lock.py +++ b/src/python/arcor2_arserver/lock/lock.py @@ -21,23 +21,23 @@ class Lock: class Owners(cmn.StrEnum): """Values that can be used as lock owner substitution.""" - SERVER: str = "SERVER" + SERVER = "SERVER" class SpecialValues(cmn.StrEnum): """Values for special locking cases e.g. global variable access.""" - SCENE: str = "SCENE" - PROJECT: str = "PROJECT" - RUNNING_ACTION: str = "ACTION" - ADDING_OBJECT: str = "ADDING_OBJECT" + SCENE = "SCENE" + PROJECT = "PROJECT" + RUNNING_ACTION = "ACTION" + ADDING_OBJECT = "ADDING_OBJECT" class ErrMessages(cmn.StrEnum): """Lock general error messages.""" - SOMETHING_LOCKED: str = "There are locked objects" - SOMETHING_LOCKED_IN_TREE: str = "Part of tree is locked" - LOCK_FAIL: str = "Locking failed, try again" - NOT_LOCKED: str = "Object not locked" + SOMETHING_LOCKED = "There are locked objects" + SOMETHING_LOCKED_IN_TREE = "Part of tree is locked" + LOCK_FAIL = "Locking failed, try again" + NOT_LOCKED = "Object not locked" __slots__ = ( "_scene", diff --git a/src/python/arcor2_arserver/models.py b/src/python/arcor2_arserver/models.py index 5d17b491a..bf8f701d1 100644 --- a/src/python/arcor2_arserver/models.py +++ b/src/python/arcor2_arserver/models.py @@ -1,5 +1,6 @@ import inspect from enum import Enum +from typing import Any, cast from apispec import APISpec from apispec.exceptions import DuplicateComponentNameError @@ -14,12 +15,15 @@ def _rename_childs(obj: type[JsonSchemaMixin] | type[Enum]) -> None: for _, child_obj in inspect.getmembers(obj, inspect.isclass): if issubclass(child_obj, (JsonSchemaMixin, Enum)): - if hasattr(child_obj, "__renamed__"): + if getattr(child_obj, "__renamed__", None) is not None: continue + cast_child = cast(Any, child_obj) + if "." in child_obj.__qualname__: - child_obj.__name__ = "".join(child_obj.__qualname__.split(".")) - child_obj.__renamed__ = None + cast_child.__name__ = "".join(child_obj.__qualname__.split(".")) + + cast_child.__renamed__ = None _rename_childs(child_obj) diff --git a/src/python/arcor2_arserver/tests/objects/object_with_actions.py b/src/python/arcor2_arserver/tests/objects/object_with_actions.py index 499de15f3..faec38f80 100644 --- a/src/python/arcor2_arserver/tests/objects/object_with_actions.py +++ b/src/python/arcor2_arserver/tests/objects/object_with_actions.py @@ -5,9 +5,9 @@ class MyEnum(IntEnum): - ONE: int = 1 - TWO: int = 2 - THREE: int = 3 + ONE = 1 + TWO = 2 + THREE = 3 class ObjectWithActions(Generic): diff --git a/src/python/arcor2_arserver_data/events/common.py b/src/python/arcor2_arserver_data/events/common.py index 29be6f487..4f2417053 100644 --- a/src/python/arcor2_arserver_data/events/common.py +++ b/src/python/arcor2_arserver_data/events/common.py @@ -12,9 +12,9 @@ class ShowMainScreen(Event): @dataclass class Data(JsonSchemaMixin): class WhatEnum(common.StrEnum): - ScenesList: str = "ScenesList" - ProjectsList: str = "ProjectsList" - PackagesList: str = "PackagesList" + ScenesList = "ScenesList" + ProjectsList = "ProjectsList" + PackagesList = "PackagesList" what: WhatEnum highlight: Optional[str] = None @@ -27,9 +27,9 @@ class ProcessState(Event): @dataclass class Data(JsonSchemaMixin): class StateEnum(common.StrEnum): - Started: str = "started" - Finished: str = "finished" - Failed: str = "failed" + Started = "started" + Finished = "finished" + Failed = "failed" id: str state: StateEnum diff --git a/src/python/arcor2_arserver_data/events/robot.py b/src/python/arcor2_arserver_data/events/robot.py index f3935c9e9..ec54d403d 100644 --- a/src/python/arcor2_arserver_data/events/robot.py +++ b/src/python/arcor2_arserver_data/events/robot.py @@ -12,9 +12,9 @@ @dataclass class RobotMoveToData(JsonSchemaMixin): class MoveEventType(common.StrEnum): - START: str = "start" - END: str = "end" - FAILED: str = "failed" + START = "start" + END = "end" + FAILED = "failed" move_event_type: MoveEventType robot_id: str diff --git a/src/python/arcor2_arserver_data/events/scene.py b/src/python/arcor2_arserver_data/events/scene.py index ee228a6d1..64dd2c04b 100644 --- a/src/python/arcor2_arserver_data/events/scene.py +++ b/src/python/arcor2_arserver_data/events/scene.py @@ -41,10 +41,10 @@ class SceneState(Event): @dataclass class Data(JsonSchemaMixin): class StateEnum(common.StrEnum): - Stopped: str = "stopped" - Starting: str = "starting" - Started: str = "started" - Stopping: str = "stopping" + Stopped = "stopped" + Starting = "starting" + Started = "started" + Stopping = "stopping" state: StateEnum message: Optional[str] = None diff --git a/src/python/arcor2_arserver_data/rpc/lock.py b/src/python/arcor2_arserver_data/rpc/lock.py index cabb288ac..029aff5e5 100644 --- a/src/python/arcor2_arserver_data/rpc/lock.py +++ b/src/python/arcor2_arserver_data/rpc/lock.py @@ -7,8 +7,8 @@ class UpdateType(StrEnum): - TREE: str = "TREE" - OBJECT: str = "OBJECT" + TREE = "TREE" + OBJECT = "OBJECT" # ---------------------------------------------------------------------------------------------------------------------- diff --git a/src/python/arcor2_arserver_data/rpc/objects.py b/src/python/arcor2_arserver_data/rpc/objects.py index 2fdb991b9..33821babd 100644 --- a/src/python/arcor2_arserver_data/rpc/objects.py +++ b/src/python/arcor2_arserver_data/rpc/objects.py @@ -179,9 +179,9 @@ class Request(RPC.Request): @dataclass class Args(IdArgs): class PivotEnum(StrEnum): - TOP: str = "top" - MIDDLE: str = "middle" - BOTTOM: str = "bottom" + TOP = "top" + MIDDLE = "middle" + BOTTOM = "bottom" robot: RobotArg pivot: PivotEnum = PivotEnum.MIDDLE diff --git a/src/python/arcor2_arserver_data/rpc/robot.py b/src/python/arcor2_arserver_data/rpc/robot.py index cef77f508..2a44e6c4c 100644 --- a/src/python/arcor2_arserver_data/rpc/robot.py +++ b/src/python/arcor2_arserver_data/rpc/robot.py @@ -136,8 +136,8 @@ class Request(RPC.Request): @dataclass class Args(JsonSchemaMixin): class RegisterEnum(StrEnum): - EEF_POSE: str = "eef_pose" - JOINTS: str = "joints" + EEF_POSE = "eef_pose" + JOINTS = "joints" robot_id: str what: RegisterEnum @@ -349,19 +349,19 @@ class Request(RPC.Request): @dataclass class Args(JsonSchemaMixin): class Axis(StrEnum): - X: str = "x" - Y: str = "y" - Z: str = "z" + X = "x" + Y = "y" + Z = "z" class What(StrEnum): - POSITION: str = "position" - ORIENTATION: str = "orientation" + POSITION = "position" + ORIENTATION = "orientation" class Mode(StrEnum): - WORLD: str = "world" - ROBOT: str = "robot" - USER: str = "user" - RELATIVE: str = "relative" + WORLD = "world" + ROBOT = "robot" + USER = "user" + RELATIVE = "relative" robot_id: str end_effector_id: str diff --git a/src/python/arcor2_build/source/logic.py b/src/python/arcor2_build/source/logic.py index 761a35843..008e6f732 100644 --- a/src/python/arcor2_build/source/logic.py +++ b/src/python/arcor2_build/source/logic.py @@ -3,6 +3,7 @@ AST, Assign, Compare, + Constant, Continue, Eq, FunctionDef, @@ -10,11 +11,8 @@ Load, Module, Name, - NameConstant, - Num, Pass, Store, - Str, While, expr, keyword, @@ -59,11 +57,11 @@ def program_src(type_defs: TypesDict, project: CProject, scene: CScene, add_logi aval: None | expr = None if isinstance(val, bool): # subclass of int - aval = NameConstant(value=val, kind=None) + aval = Constant(value=val) elif isinstance(val, (int, float)): - aval = Num(value=val, kind=None) + aval = Constant(value=val) elif isinstance(val, str): - aval = Str(value=val, kind="") + aval = Constant(value=val) if not aval: raise Arcor2Exception(f"Unsupported project parameter type ({param.type}) or value ({val}).") @@ -162,7 +160,7 @@ def _add_logic(container: Container, current_action: Action, super_container: No ac_obj, act.action_type, args, - [keyword(arg="an", value=Str(value=current_action.name, kind=""))], + [keyword(arg="an", value=Constant(value=current_action.name))], current_action.flow(FlowTypes.DEFAULT).outputs, ) @@ -221,7 +219,13 @@ def _add_logic(container: Container, current_action: Action, super_container: No from arcor2 import json condition_value = json.loads(output.condition.value) - comp = NameConstant(value=condition_value, kind=None) + if ( + not isinstance(condition_value, (str, bytes, bool, int, float, complex)) + and condition_value is not None + ): + raise SourceException(f"Unsupported condition value type: {type(condition_value).__name__}") + + comp = Constant(value=condition_value) what = output.condition.parse_what() output_name = project.action(what.action_id).flow(what.flow_name).outputs[what.output_index] @@ -234,7 +238,7 @@ def _add_logic(container: Container, current_action: Action, super_container: No if idx == 0: root_if = cond container.body.append(root_if) - logger.debug(f"Adding branch for: {condition_value}") + logger.debug(f"Adding branch for: {condition_value!r}") else: assert isinstance(root_if, If) root_if.orelse.append(cond) diff --git a/src/python/arcor2_build/source/object_types.py b/src/python/arcor2_build/source/object_types.py index 48c77adfe..9ca0a11ef 100644 --- a/src/python/arcor2_build/source/object_types.py +++ b/src/python/arcor2_build/source/object_types.py @@ -1,4 +1,4 @@ -from ast import AnnAssign, Load, Name, Store, Str, Subscript +from ast import AnnAssign, Constant, Load, Name, Store, Subscript from arcor2.exceptions import Arcor2Exception from arcor2.helpers import is_valid_identifier, is_valid_type @@ -19,6 +19,6 @@ def object_instance_from_res(object_name: str, object_id: str, cls_name: str) -> return AnnAssign( target=Name(id=object_name, ctx=Store()), annotation=Name(id=cls_name, ctx=Load()), - value=Subscript(value=get_name_attr("res", "objects"), slice=Str(value=object_id, kind=""), ctx=Load()), + value=Subscript(value=get_name_attr("res", "objects"), slice=Constant(value=object_id), ctx=Load()), simple=1, ) diff --git a/src/python/arcor2_build/source/python_to_json.py b/src/python/arcor2_build/source/python_to_json.py index 15f7d1434..bda148847 100644 --- a/src/python/arcor2_build/source/python_to_json.py +++ b/src/python/arcor2_build/source/python_to_json.py @@ -76,7 +76,7 @@ def get_parameters( value_type = plugin_from_type(method.annotations[param_name]) if plugin_from_type(type(arg.value)) != value_type: - raise Arcor2Exception(f"Value {arg.value} type in method is not equal to the required value type") + raise Arcor2Exception(f"Value {arg.value!r} type in method is not equal to the required value type") param_type = value_type.type_name() param_value = value_type.value_to_json(arg.value) @@ -180,7 +180,13 @@ def gen_action( try: for key in rest_of_node.keywords: if "an" == key.arg and isinstance(key.value, Constant): - name = key.value.value + const_value = key.value.value + if isinstance(const_value, bytes): + name = const_value.decode() + elif isinstance(const_value, str): + name = const_value + else: + raise Arcor2Exception(f'Unexpected type for "an": {type(const_value)}') if not name: raise AttributeError except AttributeError: diff --git a/src/python/arcor2_build/source/tests/test_compiler_str.py b/src/python/arcor2_build/source/tests/test_compiler_str.py index 3014964da..ba63ba921 100644 --- a/src/python/arcor2_build/source/tests/test_compiler_str.py +++ b/src/python/arcor2_build/source/tests/test_compiler_str.py @@ -46,8 +46,8 @@ class TestEnum(StrEnum): - CLASS1: str = "1" - CLASS2: str = "2" + CLASS1 = "1" + CLASS2 = "2" class Test(Generic): diff --git a/src/python/arcor2_build/source/tests/test_compiler_unit_tests.py b/src/python/arcor2_build/source/tests/test_compiler_unit_tests.py index adaa7a2ed..a5dc15a46 100644 --- a/src/python/arcor2_build/source/tests/test_compiler_unit_tests.py +++ b/src/python/arcor2_build/source/tests/test_compiler_unit_tests.py @@ -40,8 +40,8 @@ class TestEnum(StrEnum): - CLASS1: str = "1" - CLASS2: str = "2" + CLASS1 = "1" + CLASS2 = "2" class Test(Generic): diff --git a/src/python/arcor2_build/source/tests/test_utils.py b/src/python/arcor2_build/source/tests/test_utils.py index 68f424e3a..cf94ebeb7 100644 --- a/src/python/arcor2_build/source/tests/test_utils.py +++ b/src/python/arcor2_build/source/tests/test_utils.py @@ -1,4 +1,4 @@ -import importlib +import importlib.util as importlib_util import os import sys @@ -36,9 +36,9 @@ def test_global_aps_cls() -> None: import arcor2_runtime.resources # noqa my_name = "my_module" - my_spec = importlib.util.spec_from_loader(my_name, loader=None) + my_spec = importlib_util.spec_from_loader(my_name, loader=None) assert my_spec - my_module = importlib.util.module_from_spec(my_spec) + my_module = importlib_util.module_from_spec(my_spec) cproj = CachedProject(proj) diff --git a/src/python/arcor2_build/source/utils.py b/src/python/arcor2_build/source/utils.py index c475c54f1..a26855f88 100644 --- a/src/python/arcor2_build/source/utils.py +++ b/src/python/arcor2_build/source/utils.py @@ -7,6 +7,7 @@ Call, ClassDef, Compare, + Constant, Eq, ExceptHandler, Expr, @@ -21,7 +22,6 @@ Pass, Return, Store, - Str, Try, While, With, @@ -106,7 +106,7 @@ def empty_script_tree(project_id: str, add_main_loop: bool = True) -> Module: ), If( test=Compare( - left=Name(id="__name__", ctx=Load()), ops=[Eq()], comparators=[Str(value="__main__", kind="")] + left=Name(id="__name__", ctx=Load()), ops=[Eq()], comparators=[Constant(value="__main__")] ), body=[ Try( @@ -211,7 +211,7 @@ def global_action_points_class(project: CachedProject) -> str: attr=CachedProject.bare_action_point.__name__, ctx=Load(), ), - args=[Str(value=ap.id, kind="")], + args=[Constant(value=ap.id)], keywords=[], ), attr="position", @@ -235,7 +235,7 @@ def global_action_points_class(project: CachedProject) -> str: attr=SpecialValues.joints, ctx=Load(), ), - args=[Str(value=joints.id, kind="")], + args=[Constant(value=joints.id)], keywords=[], ), type_comment=None, @@ -330,7 +330,7 @@ def global_action_points_class(project: CachedProject) -> str: attr="pose", ctx=Load(), ), - args=[Str(value=ori.id, kind="")], + args=[Constant(value=ori.id)], keywords=[], ), type_comment=None, diff --git a/src/python/arcor2_dobot/dobot.py b/src/python/arcor2_dobot/dobot.py index c6ef402ec..d08661b27 100644 --- a/src/python/arcor2_dobot/dobot.py +++ b/src/python/arcor2_dobot/dobot.py @@ -29,9 +29,9 @@ class DobotException(RobotException): class MoveType(StrEnum): - JUMP: str = "JUMP" - JOINTS: str = "JOINTS" - LINEAR: str = "LINEAR" + JUMP = "JUMP" + JOINTS = "JOINTS" + LINEAR = "LINEAR" MOVE_TYPE_MAPPING = { diff --git a/src/python/arcor2_dobot/m1.py b/src/python/arcor2_dobot/m1.py index e8552e121..d1f7d83b3 100644 --- a/src/python/arcor2_dobot/m1.py +++ b/src/python/arcor2_dobot/m1.py @@ -6,10 +6,10 @@ class Joints(StrEnum): - J1: str = "dobot_m1_axis_2_joint" - J2: str = "dobot_m1_axis_3_joint" - J3: str = "dobot_m1_z_axis_joint" - J4: str = "dobot_m1_axis_4_joint" + J1 = "dobot_m1_axis_2_joint" + J2 = "dobot_m1_axis_3_joint" + J3 = "dobot_m1_z_axis_joint" + J4 = "dobot_m1_axis_4_joint" class DobotM1(Dobot): diff --git a/src/python/arcor2_dobot/magician.py b/src/python/arcor2_dobot/magician.py index 2668edee2..a29a8adcf 100644 --- a/src/python/arcor2_dobot/magician.py +++ b/src/python/arcor2_dobot/magician.py @@ -9,11 +9,11 @@ class Joints(StrEnum): - J1: str = "magician_joint_1" - J2: str = "magician_joint_2" - J3: str = "magician_joint_3" - J4: str = "magician_joint_4" - J5: str = "magician_joint_5" + J1 = "magician_joint_1" + J2 = "magician_joint_2" + J3 = "magician_joint_3" + J4 = "magician_joint_4" + J5 = "magician_joint_5" class DobotMagician(Dobot): diff --git a/src/python/arcor2_dobot/scripts/dobot.py b/src/python/arcor2_dobot/scripts/dobot.py index f012085d9..dba15a780 100644 --- a/src/python/arcor2_dobot/scripts/dobot.py +++ b/src/python/arcor2_dobot/scripts/dobot.py @@ -26,8 +26,8 @@ class DobotModels(StrEnum): - MAGICIAN: str = "magician" - M1: str = "m1" + MAGICIAN = "magician" + M1 = "m1" URL = os.getenv("ARCOR2_DOBOT_URL", "http://localhost:5018") diff --git a/src/python/arcor2_execution_rest_proxy/scripts/execution_rest_proxy.py b/src/python/arcor2_execution_rest_proxy/scripts/execution_rest_proxy.py index 3194569bf..19040830e 100644 --- a/src/python/arcor2_execution_rest_proxy/scripts/execution_rest_proxy.py +++ b/src/python/arcor2_execution_rest_proxy/scripts/execution_rest_proxy.py @@ -45,12 +45,12 @@ class ExecutionState(Enum): """Represents the state of package execution.""" - Undefined: str = "Undefined" - Running: str = "Running" - Completed: str = "Completed" - Faulted: str = "Faulted" - Paused: str = "Paused" - Pending: str = "Pending" + Undefined = "Undefined" + Running = "Running" + Completed = "Completed" + Faulted = "Faulted" + Paused = "Paused" + Pending = "Pending" @dataclass diff --git a/src/python/arcor2_fit_demo/object_types/abstract_dobot.py b/src/python/arcor2_fit_demo/object_types/abstract_dobot.py index 9ff6d6f3f..eea726dbc 100644 --- a/src/python/arcor2_fit_demo/object_types/abstract_dobot.py +++ b/src/python/arcor2_fit_demo/object_types/abstract_dobot.py @@ -12,9 +12,9 @@ class DobotException(RobotException): class MoveType(StrEnum): - JUMP: str = "JUMP" - JOINTS: str = "JOINTS" - LINEAR: str = "LINEAR" + JUMP = "JUMP" + JOINTS = "JOINTS" + LINEAR = "LINEAR" class AbstractDobot(FitCommonMixin, Robot): diff --git a/src/python/arcor2_fit_demo/object_types/conveyor_belt.py b/src/python/arcor2_fit_demo/object_types/conveyor_belt.py index 9f4147a86..1f6bfe071 100644 --- a/src/python/arcor2_fit_demo/object_types/conveyor_belt.py +++ b/src/python/arcor2_fit_demo/object_types/conveyor_belt.py @@ -11,8 +11,8 @@ class Direction(StrEnum): - LEFT: str = "left" - RIGHT: str = "right" + LEFT = "left" + RIGHT = "right" @dataclass diff --git a/src/python/arcor2_fit_demo/object_types/dobot_magician.py b/src/python/arcor2_fit_demo/object_types/dobot_magician.py index aea0c95fd..ef3ea8454 100644 --- a/src/python/arcor2_fit_demo/object_types/dobot_magician.py +++ b/src/python/arcor2_fit_demo/object_types/dobot_magician.py @@ -8,11 +8,11 @@ class Joints(StrEnum): - J1: str = "magician_joint_1" - J2: str = "magician_joint_2" - J3: str = "magician_joint_3" - J4: str = "magician_joint_4" - J5: str = "magician_joint_5" + J1 = "magician_joint_1" + J2 = "magician_joint_2" + J3 = "magician_joint_3" + J4 = "magician_joint_4" + J5 = "magician_joint_5" @dataclass diff --git a/src/python/arcor2_runtime/action.py b/src/python/arcor2_runtime/action.py index c635f6acb..32ebb8037 100644 --- a/src/python/arcor2_runtime/action.py +++ b/src/python/arcor2_runtime/action.py @@ -16,9 +16,9 @@ class Commands(StrEnum): - PAUSE: str = "p" - RESUME: str = "r" - STEP: str = "s" + PAUSE = "p" + RESUME = "r" + STEP = "s" ACTION_NAME_ID_MAPPING_ATTR = "_action_name_id_mapping" diff --git a/src/python/arcor2_ur/object_types/ur5e.py b/src/python/arcor2_ur/object_types/ur5e.py index 323ae979d..cec85f012 100644 --- a/src/python/arcor2_ur/object_types/ur5e.py +++ b/src/python/arcor2_ur/object_types/ur5e.py @@ -25,9 +25,9 @@ def avg(self) -> float: class VacuumChannel(StrEnum): - A: str = "a" - B: str = "b" - BOTH: str = "both" + A = "a" + B = "b" + BOTH = "both" class Ur5e(Robot): diff --git a/src/python/arcor2_yumi/object_types/yumi.py b/src/python/arcor2_yumi/object_types/yumi.py index 37a342b73..2504532d6 100644 --- a/src/python/arcor2_yumi/object_types/yumi.py +++ b/src/python/arcor2_yumi/object_types/yumi.py @@ -75,18 +75,18 @@ class ProgramStopped(RwsException): class ExecutionState(StrEnum): - running: str = "running" - stopped: str = "stopped" + running = "running" + stopped = "stopped" class ControllerState(StrEnum): - init: str = "init" - motoron: str = "motoron" - motoroff: str = "motoroff" - guardstop: str = "guardstop" - emergencystop: str = "emergencystop" - emergencystopreset: str = "emergencystopreset" - sysfail: str = "sysfail" + init = "init" + motoron = "motoron" + motoroff = "motoroff" + guardstop = "guardstop" + emergencystop = "emergencystop" + emergencystopreset = "emergencystopreset" + sysfail = "sysfail" class RWS: @@ -977,8 +977,8 @@ def reset_home(self) -> None: class YumiArms(StrEnum): - LEFT: str = "left" - RIGHT: str = "right" + LEFT = "left" + RIGHT = "right" class YuMi(MultiArmRobot):