update protobuf 33.4

This commit is contained in:
scito
2026-01-16 17:07:26 +01:00
committed by Roland Kurmann
parent 7e1c186c2e
commit a1e3873063
5 changed files with 230 additions and 233 deletions

235
Pipfile.lock generated
View File

@@ -231,20 +231,20 @@
}, },
"protobuf": { "protobuf": {
"hashes": [ "hashes": [
"sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f", "sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f",
"sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913", "sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc",
"sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4", "sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0",
"sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe", "sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9",
"sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c", "sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e",
"sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d", "sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc",
"sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872", "sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d",
"sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e", "sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6",
"sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43", "sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6",
"sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4" "sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.9'", "markers": "python_version >= '3.9'",
"version": "==6.33.2" "version": "==6.33.4"
}, },
"pyzbar": { "pyzbar": {
"hashes": [ "hashes": [
@@ -275,11 +275,11 @@
"develop": { "develop": {
"astroid": { "astroid": {
"hashes": [ "hashes": [
"sha256:ac8fb7ca1c08eb9afec91ccc23edbd8ac73bb22cbdd7da1d488d9fb8d6579070", "sha256:08d1de40d251cc3dc4a7a12726721d475ac189e4e583d596ece7422bc176bda3",
"sha256:d7546c00a12efc32650b19a2bb66a153883185d3179ab0d4868086f807338b9b" "sha256:864a0a34af1bd70e1049ba1e61cee843a7252c826d97825fcee9b2fcbd9e1b14"
], ],
"markers": "python_full_version >= '3.10.0'", "markers": "python_full_version >= '3.10.0'",
"version": "==4.0.2" "version": "==4.0.3"
}, },
"build": { "build": {
"hashes": [ "hashes": [
@@ -290,15 +290,6 @@
"markers": "python_version >= '3.9'", "markers": "python_version >= '3.9'",
"version": "==1.4.0" "version": "==1.4.0"
}, },
"colorama": {
"hashes": [
"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44",
"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"
],
"index": "pypi",
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'",
"version": "==0.4.6"
},
"coverage": { "coverage": {
"extras": [ "extras": [
"toml" "toml"
@@ -443,85 +434,85 @@
}, },
"librt": { "librt": {
"hashes": [ "hashes": [
"sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee", "sha256:00105e7d541a8f2ee5be52caacea98a005e0478cfe78c8080fbb7b5d2b340c63",
"sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1", "sha256:0241a6ed65e6666236ea78203a73d800dbed896cf12ae25d026d75dc1fcd1dac",
"sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4", "sha256:03679b9856932b8c8f674e87aa3c55ea11c9274301f76ae8dc4d281bda55cf62",
"sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899", "sha256:047164e5f68b7a8ebdf9fae91a3c2161d3192418aadd61ddd3a86a56cbe3dc85",
"sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49", "sha256:171ca3a0a06c643bd0a2f62a8944e1902c94aa8e5da4db1ea9a8daf872685365",
"sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d", "sha256:1a4ede613941d9c3470b0368be851df6bb78ab218635512d0370b27a277a0862",
"sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760", "sha256:20e3946863d872f7cabf7f77c6c9d370b8b3d74333d3a32471c50d3a86c0a232",
"sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335", "sha256:2991b6c3775383752b3ca0204842743256f3ad3deeb1d0adc227d56b78a9a850",
"sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8", "sha256:31724b93baa91512bd0a376e7cf0b59d8b631ee17923b1218a65456fa9bda2e7",
"sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2", "sha256:3469e1af9f1380e093ae06bedcbdd11e407ac0b303a56bbe9afb1d6824d4982d",
"sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec", "sha256:389bd25a0db916e1d6bcb014f11aa9676cedaa485e9ec3752dfe19f196fd377b",
"sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b", "sha256:3968762fec1b2ad34ce57458b6de25dbb4142713e9ca6279a0d352fa4e9f452b",
"sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0", "sha256:39a4c76fee41007070f872b648cc2f711f9abf9a13d0c7162478043377b52c8e",
"sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717", "sha256:3d1322800771bee4a91f3b4bd4e49abc7d35e65166821086e5afd1e6c0d9be44",
"sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325", "sha256:41d7bb1e07916aeb12ae4a44e3025db3691c4149ab788d0315781b4d29b86afb",
"sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45", "sha256:43d4e71b50763fcdcf64725ac680d8cfa1706c928b844794a7aa0fa9ac8e5f09",
"sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d", "sha256:445b7304145e24c60288a2f172b5ce2ca35c0f81605f5299f3fa567e189d2e32",
"sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233", "sha256:44e0c2cbc9bebd074cf2cdbe472ca185e824be4e74b1c63a8e934cea674bebf2",
"sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d", "sha256:451e7ffcef8f785831fdb791bd69211f47e95dc4c6ddff68e589058806f044c6",
"sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544", "sha256:46ef1f4b9b6cc364b11eea0ecc0897314447a66029ee1e55859acb3dd8757c93",
"sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802", "sha256:4864045f49dc9c974dadb942ac56a74cd0479a2aafa51ce272c490a82322ea3c",
"sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2", "sha256:4adc73614f0d3c97874f02f2c7fd2a27854e7e24ad532ea6b965459c5b757eca",
"sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d", "sha256:4c3995abbbb60b3c129490fa985dfe6cac11d88fc3c36eeb4fb1449efbbb04fc",
"sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f", "sha256:4d2f1e492cae964b3463a03dc77a7fe8742f7855d7258c7643f0ee32b6651dd3",
"sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169", "sha256:535929b6eff670c593c34ff435d5440c3096f20fa72d63444608a5aef64dd581",
"sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe", "sha256:5363427bc6a8c3b1719f8f3845ea53553d301382928a86e8fab7984426949bce",
"sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982", "sha256:54feb7b4f2f6706bb82325e836a01be805770443e2400f706e824e91f6441dde",
"sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2", "sha256:57175aa93f804d2c08d2edb7213e09276bd49097611aefc37e3fa38d1fb99ad0",
"sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa", "sha256:5bcaaf624fd24e6a0cb14beac37677f90793a96864c67c064a91458611446e83",
"sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4", "sha256:60c299e555f87e4c01b2eca085dfccda1dde87f5a604bb45c2906b8305819a93",
"sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4", "sha256:631599598e2c76ded400c0a8722dec09217c89ff64dc54b060f598ed68e7d2a8",
"sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57", "sha256:63937bd0f4d1cb56653dc7ae900d6c52c41f0015e25aaf9902481ee79943b33a",
"sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26", "sha256:66daa6ac5de4288a5bbfbe55b4caa7bf0cd26b3269c7a476ffe8ce45f837f87d",
"sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361", "sha256:6938cc2de153bc927ed8d71c7d2f2ae01b4e96359126c602721340eb7ce1a92d",
"sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad", "sha256:6d772edc6a5f7835635c7562f6688e031f0b97e31d538412a852c49c9a6c92d5",
"sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e", "sha256:6db5faf064b5bab9675c32a873436b31e01d66ca6984c6f7f92621656033a708",
"sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf", "sha256:73fd300f501a052f2ba52ede721232212f3b06503fa12665408ecfc9d8fd149c",
"sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f", "sha256:79feb4d00b2a4e0e05c9c56df707934f41fcb5fe53fd9efb7549068d0495b758",
"sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af", "sha256:7aa7d5457b6c542ecaed79cec4ad98534373c9757383973e638ccced0f11f46d",
"sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2", "sha256:7b0803e9008c62a7ef79058233db7ff6f37a9933b8f2573c05b07ddafa226611",
"sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89", "sha256:7e03bea66af33c95ce3addf87a9bf1fcad8d33e757bc479957ddbc0e4f7207ac",
"sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904", "sha256:864c4b7083eeee250ed55135d2127b260d7eb4b5e953a9e5df09c852e327961b",
"sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6", "sha256:8766ece9de08527deabcd7cb1b4f1a967a385d26e33e536d6d8913db6ef74f06",
"sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276", "sha256:87808a8d1e0bd62a01cafc41f0fd6818b5a5d0ca0d8a55326a81643cdda8f873",
"sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e", "sha256:907ad09cfab21e3c86e8f1f87858f7049d1097f77196959c033612f532b4e592",
"sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6", "sha256:95b67aa7eff150f075fda09d11f6bfb26edffd300f6ab1666759547581e8f666",
"sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409", "sha256:978e8b5f13e52cf23a9e80f3286d7546baa70bc4ef35b51d97a709d0b28e537c",
"sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7", "sha256:9b6943885b2d49c48d0cff23b16be830ba46b0152d98f62de49e735c6e655a63",
"sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a", "sha256:9c1ba843ae20db09b9d5c80475376168feb2640ce91cd9906414f23cc267a1ff",
"sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4", "sha256:a14229ac62adcf1b90a15992f1ab9c69ae8b99ffb23cb64a90878a6e8a2f5b81",
"sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775", "sha256:a36515b1328dc5b3ffce79fe204985ca8572525452eacabee2166f44bb387b2c",
"sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203", "sha256:ac9c8a458245c7de80bc1b9765b177055efff5803f08e548dd4bb9ab9a8d789b",
"sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419", "sha256:ad64a14b1e56e702e19b24aae108f18ad1bf7777f3af5fcd39f87d0c5a814449",
"sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5", "sha256:b09c52ed43a461994716082ee7d87618096851319bf695d57ec123f2ab708951",
"sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023", "sha256:b45306a1fc5f53c9330fbee134d8b3227fe5da2ab09813b892790400aa49352d",
"sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b", "sha256:b5b007bb22ea4b255d3ee39dfd06d12534de2fcc3438567d9f48cdaf67ae1ae3",
"sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b", "sha256:b7e7f140c5169798f90b80d6e607ed2ba5059784968a004107c88ad61fb3641d",
"sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d", "sha256:b9122094e3f24aa759c38f46bd8863433820654927370250f460ae75488b66ea",
"sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3", "sha256:bb7a7807523a31f03061288cc4ffc065d684c39db7644c676b47d89553c0d714",
"sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e", "sha256:be927c3c94c74b05128089a955fba86501c3b544d1d300282cc1b4bd370cb418",
"sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a", "sha256:bfde8a130bd0f239e45503ab39fab239ace094d63ee1d6b67c25a63d741c0f71",
"sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b", "sha256:c6f8947d3dfd7f91066c5b4385812c18be26c9d5a99ca56667547f2c39149d94",
"sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db", "sha256:c7e8f88f79308d86d8f39c491773cbb533d6cb7fa6476f35d711076ee04fceb6",
"sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd", "sha256:ca916919793a77e4a98d4a1701e345d337ce53be4a16620f063191f7322ac80f",
"sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa", "sha256:cf243da9e42d914036fd362ac3fa77d80a41cadcd11ad789b1b5eec4daaf67ca",
"sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1", "sha256:d6f254d096d84156a46a84861183c183d30734e52383602443292644d895047c",
"sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805", "sha256:dbd79caaf77a3f590cbe32dc2447f718772d6eea59656a7dcb9311161b10fa75",
"sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a", "sha256:ddb52499d0b3ed4aa88746aaf6f36a08314677d5c346234c3987ddc506404eac",
"sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25", "sha256:e90a8e237753c83b8e484d478d9a996dc5e39fd5bd4c6ce32563bc8123f132be",
"sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6", "sha256:e9c0afebbe6ce177ae8edba0c7c4d626f2a0fc12c33bb993d163817c41a7a05c",
"sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b", "sha256:f11b300027ce19a34f6d24ebb0a25fd0e24a9d53353225a5c1e6cadbf2916b2e",
"sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5", "sha256:f1ade7f31675db00b514b98f9ab9a7698c7282dad4be7492589109471852d398",
"sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416", "sha256:f8f4a901a3fa28969d6e4519deceab56c55a09d691ea7b12ca830e2fa3461e34",
"sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc", "sha256:fdec6e2368ae4f796fc72fad7fd4bd1753715187e6d870932b0904609e7c878e",
"sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7", "sha256:ff3e9c11aa260c31493d4b3197d1e28dd07768594a4f92bec4506849d736248f",
"sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96" "sha256:ff71447cb778a4f772ddc4ce360e6ba9c95527ed84a52096bd1bbf9fee2ec7c0"
], ],
"markers": "python_version >= '3.9'", "markers": "python_version >= '3.9'",
"version": "==0.7.5" "version": "==0.7.8"
}, },
"mccabe": { "mccabe": {
"hashes": [ "hashes": [
@@ -586,12 +577,12 @@
}, },
"mypy-protobuf": { "mypy-protobuf": {
"hashes": [ "hashes": [
"sha256:b859286891c51e420aef711b3e6616444e81c64723c12110d1dda809fad105f6", "sha256:3a7dd753ef3e3b8783a824eb51f07983f62812f9ec066e4fbb1b22d6c5dc36d0",
"sha256:e200c833645dcfdfe8aa47f4a33d3a4b01b6be5b9a58ddbfc441329d5b679274" "sha256:6fdd1cfdbb4419c713291d800a332d4bba6510dbd1341ed95e0bcc82fcadb6b5"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.8'",
"version": "==4.0.0" "version": "==5.0.0"
}, },
"nuitka": { "nuitka": {
"hashes": [ "hashes": [
@@ -618,11 +609,11 @@
}, },
"pathspec": { "pathspec": {
"hashes": [ "hashes": [
"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", "sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d",
"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" "sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c"
], ],
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.9'",
"version": "==0.12.1" "version": "==1.0.3"
}, },
"platformdirs": { "platformdirs": {
"hashes": [ "hashes": [
@@ -642,20 +633,20 @@
}, },
"protobuf": { "protobuf": {
"hashes": [ "hashes": [
"sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f", "sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f",
"sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913", "sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc",
"sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4", "sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0",
"sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe", "sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9",
"sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c", "sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e",
"sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d", "sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc",
"sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872", "sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d",
"sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e", "sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6",
"sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43", "sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6",
"sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4" "sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.9'", "markers": "python_version >= '3.9'",
"version": "==6.33.2" "version": "==6.33.4"
}, },
"pycodestyle": { "pycodestyle": {
"hashes": [ "hashes": [
@@ -727,11 +718,11 @@
}, },
"tomlkit": { "tomlkit": {
"hashes": [ "hashes": [
"sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680",
"sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0" "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064"
], ],
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.9'",
"version": "==0.13.3" "version": "==0.14.0"
}, },
"types-protobuf": { "types-protobuf": {
"hashes": [ "hashes": [

View File

@@ -14,7 +14,7 @@
[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)
<!-- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/protobuf) <!-- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/protobuf)
[![GitHub Pipenv locked Python version](https://img.shields.io/github/pipenv/locked/python-version/scito/extract_otp_secrets)](https://github.com/scito/extract_otp_secrets/blob/master/Pipfile.lock) [![GitHub Pipenv locked Python version](https://img.shields.io/github/pipenv/locked/python-version/scito/extract_otp_secrets)](https://github.com/scito/extract_otp_secrets/blob/master/Pipfile.lock)
![protobuf version](https://img.shields.io/badge/protobuf-6.33.1-informational)--> ![protobuf 33.4version](https://img.shields.io/badge/protobuf-6.33.433.1-informational)-->
<!-- [![Github all releases](https://img.shields.io/github/downloads/scito/extract_otp_secrets/total.svg)](https://GitHub.com/scito/extract_otp_secrets/releases/) --> <!-- [![Github all releases](https://img.shields.io/github/downloads/scito/extract_otp_secrets/total.svg)](https://GitHub.com/scito/extract_otp_secrets/releases/) -->
@@ -385,7 +385,7 @@ python extract_otp_secrets.py = < example_export.png</pre>
* Provides a debug mode (-d) for analyzing import problems * Provides a debug mode (-d) for analyzing import problems
* Written in modern Python using type hints and following best practices * Written in modern Python using type hints and following best practices
* All these features are backed by tests ran nightly * All these features are backed by tests ran nightly
* All functionality in one Python script: src/extract_otp_secrets.py (except protobuf generated code in protobuf_generated_python) * All functionality in one Python script: src/extract_otp_secrets.py (except protobuf 33.4generated code in protobuf_generated_python)
## KeePass ## KeePass
@@ -748,11 +748,11 @@ sudo dnf install python3-pip perl envsubst
The export QR code of "Google Authenticator" contains the URL `otpauth-migration://offline?data=…`. The export QR code of "Google Authenticator" contains the URL `otpauth-migration://offline?data=…`.
The data parameter is a base64 encoded proto3 message (Google Protocol Buffers). The data parameter is a base64 encoded proto3 message (Google Protocol Buffers).
Command for regeneration of Python code from proto3 message definition file (only necessary in case of changes of the proto3 message definition or new protobuf versions): Command for regeneration of Python code from proto3 message definition file (only necessary in case of changes of the proto3 message definition or new protobuf 33.4versions):
protoc --plugin=protoc-gen-mypy=path/to/protoc-gen-mypy --python_out=src/protobuf_generated_python --mypy_out=src/protobuf_generated_python src/google_auth.proto protoc 33.4--plugin=protoc-33.4gen-mypy=path/to/protoc-33.4gen-mypy --python_out=src/protobuf_generated_python --mypy_out=src/protobuf_generated_python src/google_auth.proto
The generated protobuf Python code was generated by protoc 33.1 (https://github.com/protocolbuffers/protobuf/releases/tag/v33.1). The generated protobuf 33.4Python code was generated by protoc 33.433.1 (https://github.com/protocolbuffers/protobuf/releases/tag/v33.433.1).
For Python type hint generation the [mypy-protobuf](https://github.com/nipunn1313/mypy-protobuf) package is used. For Python type hint generation the [mypy-protobuf](https://github.com/nipunn1313/mypy-protobuf) package is used.

View File

@@ -82,7 +82,7 @@ else
fi fi
interactive=false interactive=false
ignore_version_check=true ignore_version_check=false
clean=false clean=false
clean_flag="" clean_flag=""
build_base=true build_base=true
@@ -128,7 +128,7 @@ while test $# -gt 0; do
shift shift
;; ;;
-C) -C)
ignore_version_check=false ignore_version_check=true
shift shift
;; ;;
-B) -B)
@@ -274,57 +274,61 @@ if $build_local; then
echo -e "\nProtoc remote version $VERSION\n" echo -e "\nProtoc remote version $VERSION\n"
echo -e "Protoc local version: $OLDVERSION\n" echo -e "Protoc local version: $OLDVERSION\n"
if [ "$OLDVERSION" != "$VERSION" ] && ! $ignore_version_check; then if ! $ignore_version_check; then
echo "Upgrade protoc from $OLDVERSION to $VERSION" if [ "$OLDVERSION" != "$VERSION" ]; then
echo "Upgrade protoc from $OLDVERSION to $VERSION"
NAME="protoc-$VERSION" NAME="protoc-$VERSION"
ARCHIVE="$NAME.zip" ARCHIVE="$NAME.zip"
mkdir -p $DOWNLOADS mkdir -p $DOWNLOADS
# https://github.com/protocolbuffers/protobuf/releases/download/v21.6/protoc-21.6-linux-x86_64.zip # https://github.com/protocolbuffers/protobuf/releases/download/v21.6/protoc-21.6-linux-x86_64.zip
cmd="wget --trust-server-names https://github.com/protocolbuffers/protobuf/releases/download/v$VERSION/protoc-$VERSION-linux-x86_64.zip -O $DOWNLOADS/$ARCHIVE" cmd="wget --trust-server-names https://github.com/protocolbuffers/protobuf/releases/download/v$VERSION/protoc-$VERSION-linux-x86_64.zip -O $DOWNLOADS/$ARCHIVE"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="echo -e '\nSize [Byte]'; stat --printf='%s\n' $DOWNLOADS/$ARCHIVE; echo -e '\nMD5'; md5sum $DOWNLOADS/$ARCHIVE; echo -e '\nSHA256'; sha256sum $DOWNLOADS/$ARCHIVE;" cmd="echo -e '\nSize [Byte]'; stat --printf='%s\n' $DOWNLOADS/$ARCHIVE; echo -e '\nMD5'; md5sum $DOWNLOADS/$ARCHIVE; echo -e '\nSHA256'; sha256sum $DOWNLOADS/$ARCHIVE;"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="mkdir -p $BIN/$NAME; unzip $DOWNLOADS/$ARCHIVE -d $BIN/$NAME" cmd="mkdir -p $BIN/$NAME; unzip $DOWNLOADS/$ARCHIVE -d $BIN/$NAME"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="echo $VERSION > $BIN/$NAME/.VERSION.txt; echo $VERSION > $BIN/$NAME/.VERSION_$VERSION.txt" cmd="echo $VERSION > $BIN/$NAME/.VERSION.txt; echo $VERSION > $BIN/$NAME/.VERSION_$VERSION.txt"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="[ -d $BIN/$DEST.old ] && rm -rf $BIN/$DEST.old || echo 'No old dir to delete'" cmd="[ -d $BIN/$DEST.old ] && rm -rf $BIN/$DEST.old || echo 'No old dir to delete'"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="[ -d $BIN/$DEST ] && mv -iT $BIN/$DEST $BIN/$DEST.old || echo 'No previous dir to keep'" cmd="[ -d $BIN/$DEST ] && mv -iT $BIN/$DEST $BIN/$DEST.old || echo 'No previous dir to keep'"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="mv -iT $BIN/$NAME $BIN/$DEST" cmd="mv -iT $BIN/$NAME $BIN/$DEST"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="rm $DOWNLOADS/$ARCHIVE" cmd="rm $DOWNLOADS/$ARCHIVE"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
cmd="$BIN/$DEST/bin/protoc --plugin=protoc-gen-mypy=$HOME/.local/bin/protoc-gen-mypy --python_out=src/protobuf_generated_python --mypy_out=src/protobuf_generated_python --proto_path=src google_auth.proto" cmd="$BIN/$DEST/bin/protoc --plugin=protoc-gen-mypy=$HOME/.local/bin/protoc-gen-mypy --python_out=src/protobuf_generated_python --mypy_out=src/protobuf_generated_python --proto_path=src google_auth.proto"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
# Update README.md # Update README.md
cmd="perl -i -pe 's%proto(buf|c)([- ])(\d\.)?$OLDVERSION%proto\$1\$2\${3}$VERSION%g' README.md && perl -i -pe 's%(protobuf/releases/tag/v)$OLDVERSION%\${1}$VERSION%g' README.md" cmd="perl -i -pe 's%proto(buf|c)([- ])(\d\.)?$OLDVERSION%proto\$1\$2\${3}$VERSION%g' README.md && perl -i -pe 's%(protobuf/releases/tag/v)$OLDVERSION%\${1}$VERSION%g' README.md"
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
eval "$cmd" eval "$cmd"
else
echo -e "\nVersion has not changed. Quit"
fi
else else
echo -e "\nVersion has not changed. Quit" echo -e "\nIgnore version check. Using existing protoc version.\n"
fi fi
if $build_base; then if $build_base; then

View File

@@ -2,7 +2,7 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE # NO CHECKED-IN PROTOBUF GENCODE
# source: google_auth.proto # source: google_auth.proto
# Protobuf Python Version: 6.33.0 # Protobuf Python Version: 6.33.4
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import descriptor_pool as _descriptor_pool
@@ -13,7 +13,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC, _runtime_version.Domain.PUBLIC,
6, 6,
33, 33,
0, 4,
'', '',
'google_auth.proto' 'google_auth.proto'
) )

View File

@@ -3,34 +3,34 @@
isort:skip_file isort:skip_file
""" """
import builtins from collections import abc as _abc
import collections.abc from google.protobuf import descriptor as _descriptor
import google.protobuf.descriptor from google.protobuf import message as _message
import google.protobuf.internal.containers from google.protobuf.internal import containers as _containers
import google.protobuf.internal.enum_type_wrapper from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
import google.protobuf.message import builtins as _builtins
import sys import sys
import typing import typing as _typing
if sys.version_info >= (3, 10): if sys.version_info >= (3, 10):
import typing as typing_extensions from typing import TypeAlias as _TypeAlias
else: else:
import typing_extensions from typing_extensions import TypeAlias as _TypeAlias
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor DESCRIPTOR: _descriptor.FileDescriptor
@typing.final @_typing.final
class MigrationPayload(google.protobuf.message.Message): class MigrationPayload(_message.Message):
"""Copied from: https://github.com/beemdevelopment/Aegis/blob/master/app/src/main/proto/google_auth.proto""" """Copied from: https://github.com/beemdevelopment/Aegis/blob/master/app/src/main/proto/google_auth.proto"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor DESCRIPTOR: _descriptor.Descriptor
class _Algorithm: class _Algorithm:
ValueType = typing.NewType("ValueType", builtins.int) ValueType = _typing.NewType("ValueType", _builtins.int)
V: typing_extensions.TypeAlias = ValueType V: _TypeAlias = ValueType # noqa: Y015
class _AlgorithmEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MigrationPayload._Algorithm.ValueType], builtins.type): class _AlgorithmEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MigrationPayload._Algorithm.ValueType], _builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor DESCRIPTOR: _descriptor.EnumDescriptor
ALGO_INVALID: MigrationPayload._Algorithm.ValueType # 0 ALGO_INVALID: MigrationPayload._Algorithm.ValueType # 0
ALGO_SHA1: MigrationPayload._Algorithm.ValueType # 1 ALGO_SHA1: MigrationPayload._Algorithm.ValueType # 1
@@ -39,11 +39,11 @@ class MigrationPayload(google.protobuf.message.Message):
ALGO_SHA1: MigrationPayload.Algorithm.ValueType # 1 ALGO_SHA1: MigrationPayload.Algorithm.ValueType # 1
class _OtpType: class _OtpType:
ValueType = typing.NewType("ValueType", builtins.int) ValueType = _typing.NewType("ValueType", _builtins.int)
V: typing_extensions.TypeAlias = ValueType V: _TypeAlias = ValueType # noqa: Y015
class _OtpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MigrationPayload._OtpType.ValueType], builtins.type): class _OtpTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MigrationPayload._OtpType.ValueType], _builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor DESCRIPTOR: _descriptor.EnumDescriptor
OTP_INVALID: MigrationPayload._OtpType.ValueType # 0 OTP_INVALID: MigrationPayload._OtpType.ValueType # 0
OTP_HOTP: MigrationPayload._OtpType.ValueType # 1 OTP_HOTP: MigrationPayload._OtpType.ValueType # 1
OTP_TOTP: MigrationPayload._OtpType.ValueType # 2 OTP_TOTP: MigrationPayload._OtpType.ValueType # 2
@@ -53,57 +53,59 @@ class MigrationPayload(google.protobuf.message.Message):
OTP_HOTP: MigrationPayload.OtpType.ValueType # 1 OTP_HOTP: MigrationPayload.OtpType.ValueType # 1
OTP_TOTP: MigrationPayload.OtpType.ValueType # 2 OTP_TOTP: MigrationPayload.OtpType.ValueType # 2
@typing.final @_typing.final
class OtpParameters(google.protobuf.message.Message): class OtpParameters(_message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor DESCRIPTOR: _descriptor.Descriptor
SECRET_FIELD_NUMBER: builtins.int SECRET_FIELD_NUMBER: _builtins.int
NAME_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: _builtins.int
ISSUER_FIELD_NUMBER: builtins.int ISSUER_FIELD_NUMBER: _builtins.int
ALGORITHM_FIELD_NUMBER: builtins.int ALGORITHM_FIELD_NUMBER: _builtins.int
DIGITS_FIELD_NUMBER: builtins.int DIGITS_FIELD_NUMBER: _builtins.int
TYPE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: _builtins.int
COUNTER_FIELD_NUMBER: builtins.int COUNTER_FIELD_NUMBER: _builtins.int
secret: builtins.bytes secret: _builtins.bytes
name: builtins.str name: _builtins.str
issuer: builtins.str issuer: _builtins.str
algorithm: global___MigrationPayload.Algorithm.ValueType algorithm: Global___MigrationPayload.Algorithm.ValueType
digits: builtins.int digits: _builtins.int
type: global___MigrationPayload.OtpType.ValueType type: Global___MigrationPayload.OtpType.ValueType
counter: builtins.int counter: _builtins.int
def __init__( def __init__(
self, self,
*, *,
secret: builtins.bytes = ..., secret: _builtins.bytes = ...,
name: builtins.str = ..., name: _builtins.str = ...,
issuer: builtins.str = ..., issuer: _builtins.str = ...,
algorithm: global___MigrationPayload.Algorithm.ValueType = ..., algorithm: Global___MigrationPayload.Algorithm.ValueType = ...,
digits: builtins.int = ..., digits: _builtins.int = ...,
type: global___MigrationPayload.OtpType.ValueType = ..., type: Global___MigrationPayload.OtpType.ValueType = ...,
counter: builtins.int = ..., counter: _builtins.int = ...,
) -> None: ... ) -> None: ...
def ClearField(self, field_name: typing.Literal["algorithm", b"algorithm", "counter", b"counter", "digits", b"digits", "issuer", b"issuer", "name", b"name", "secret", b"secret", "type", b"type"]) -> None: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "counter", b"counter", "digits", b"digits", "issuer", b"issuer", "name", b"name", "secret", b"secret", "type", b"type"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
OTP_PARAMETERS_FIELD_NUMBER: builtins.int OTP_PARAMETERS_FIELD_NUMBER: _builtins.int
VERSION_FIELD_NUMBER: builtins.int VERSION_FIELD_NUMBER: _builtins.int
BATCH_SIZE_FIELD_NUMBER: builtins.int BATCH_SIZE_FIELD_NUMBER: _builtins.int
BATCH_INDEX_FIELD_NUMBER: builtins.int BATCH_INDEX_FIELD_NUMBER: _builtins.int
BATCH_ID_FIELD_NUMBER: builtins.int BATCH_ID_FIELD_NUMBER: _builtins.int
version: builtins.int version: _builtins.int
batch_size: builtins.int batch_size: _builtins.int
batch_index: builtins.int batch_index: _builtins.int
batch_id: builtins.int batch_id: _builtins.int
@property @_builtins.property
def otp_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MigrationPayload.OtpParameters]: ... def otp_parameters(self) -> _containers.RepeatedCompositeFieldContainer[Global___MigrationPayload.OtpParameters]: ...
def __init__( def __init__(
self, self,
*, *,
otp_parameters: collections.abc.Iterable[global___MigrationPayload.OtpParameters] | None = ..., otp_parameters: _abc.Iterable[Global___MigrationPayload.OtpParameters] | None = ...,
version: builtins.int = ..., version: _builtins.int = ...,
batch_size: builtins.int = ..., batch_size: _builtins.int = ...,
batch_index: builtins.int = ..., batch_index: _builtins.int = ...,
batch_id: builtins.int = ..., batch_id: _builtins.int = ...,
) -> None: ... ) -> None: ...
def ClearField(self, field_name: typing.Literal["batch_id", b"batch_id", "batch_index", b"batch_index", "batch_size", b"batch_size", "otp_parameters", b"otp_parameters", "version", b"version"]) -> None: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["batch_id", b"batch_id", "batch_index", b"batch_index", "batch_size", b"batch_size", "otp_parameters", b"otp_parameters", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
global___MigrationPayload = MigrationPayload Global___MigrationPayload: _TypeAlias = MigrationPayload # noqa: Y015